负载均衡部署nuxt项目问题排查步骤
目的:通过多台机子来做负载均衡,部署公司的nuxt前端项目。
1.先是以nginx做代理,配置root路径为nuxt项目的dist文件夹。这种方式在请求的时候,会莫名其妙多出一个301请求,并且301请求的host为负载均衡机器的ip。会出现类似 http://172.17.0.1/xxx 的请求,失败。
2.改成以在服务器上npm run start的方式启动nuxt,监听3000端口,不会出现301请求了。但是静态文件会时不时出现404。和前端商量后,是因为每台机子npm启动的时候会生成不一样的随机的静态文件名字。导致在多台机子在负载均衡的时候出现404。
3.改成本地编译生成.nuxt文件夹之后,上传服务器启动。因为是通过jenkins版本部署的,过程是将代码在部署jenkins的机器上打包并发送到对应的机子上,打包的过程中发现.nuxt文件夹一直无法被打包。查阅资料发现,隐藏文件夹在tar命令之下,默认是不打包的,修改打包语句为
代码语言:javascript复制tar zcvf ${PRONAME}-${Tag}.tar.gz --exclude=${PRONAME}/.git ${PRONAME}/[!.]* ${PRONAME}/*"
复制代码
4.正式服务器上通过pm2 管理nuxt项目。启动成功。
5.但仍有问题,部署过程中,需要在远程机器安装依赖,这个过程需要数秒钟。在A机器项目重启时,B机器暂未重启,因为安装依赖的时间关系,在数秒内,会导致访问域名时,网站出现问题。
KONG和KONGA搭建
安装postgresql
代码语言:javascript复制apt-get install -y postgresql
复制代码
登陆
代码语言:javascript复制sudo -u postgres psql
复制代码
创建用户和数据库
代码语言:javascript复制create user kong with password 'kong';
create database kong owner kong;
grant all privileges on database kong to kong;
复制代码
安装kong 修改kong配置文件 启动
代码语言:javascript复制dpkg -i kong-2.0.4.bionic.amd64.deb
mv /etc/kong/kong.conf.default /etc/kong/kong.conf
pg_host = 127.0.0.1
pg_port = 5432
pg_user = kong
pg_password = kong
pg_database = kong
kong migrations bootstrap
kong start
复制代码
安装konga 创建数据库
代码语言:javascript复制create user konga with password 'konga';
create database konga owner konga;
grant all privileges on database konga to konga;
复制代码
下载镜像
代码语言:javascript复制sudo docker pull pantsel/konga:latest
复制代码
试了几个地址都很慢,用163的镜像加速,秒下
代码语言:javascript复制http://hub-mirror.c.163.com
复制代码
修改postgres配置文件 重启postgres
代码语言:javascript复制postgresql.conf listen_addresses 0.0.0.0
pg_hba.conf host all all 0.0.0.0/0 md5
复制代码
启动konga
代码语言:javascript复制sudo docker run --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://konga:konga@172.17.0.1:5432/konga
sudo docker run -p 1337:1337 --name konga -e "NODE_ENV=production" -e "DB_ADAPTER=postgres" -e "DB_URI=postgresql://konga:konga@172.17.0.1:5432/konga" pantsel/konga
复制代码
服务器磁盘占满 df和du查看的容量不一样
df和du查看磁盘占用量不一致 可能是有些文件被删除了但是仍被进程占用
lsof|grep delete 查看哪些文件被占用
找到占用这些文件的进程,重启
恢复