服务器2

2021-12-07 15:17:18 浏览数 (1)

负载均衡部署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 查看哪些文件被占用

找到占用这些文件的进程,重启

恢复

0 人点赞