我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战
负载均衡部署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命令之下,默认是不打包的,修改打包语句为
tar zcvf ${PRONAME}-${Tag}.tar.gz --exclude=${PRONAME}/.git ${PRONAME}/[!.]* ${PRONAME}/*"
4.正式服务器上通过pm2 管理nuxt项目。启动成功。
5.但仍有问题,部署过程中,需要在远程机器安装依赖,这个过程需要数秒钟。在A机器项目重启时,B机器暂未重启,因为安装依赖的时间关系,在数秒内,会导致访问域名时,网站出现问题。
KONG和KONGA搭建
安装postgresql
apt-get install -y postgresql
登陆
sudo -u postgres psql
创建用户和数据库
create user kong with password 'kong'; create database kong owner kong; grant all privileges on database kong to kong;
安装kong 修改kong配置文件 启动
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 创建数据库
create user konga with password 'konga'; create database konga owner konga; grant all privileges on database konga to konga;
下载镜像
sudo docker pull pantsel/konga:latest
试了几个地址都很慢,用163的镜像加速,秒下
http://hub-mirror.c.163.com
修改postgres配置文件 重启postgres
postgresql.conf listen_addresses 0.0.0.0 pg_hba.conf host all all 0.0.0.0/0 md5
启动konga
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
阿里云服务器扩容
growpart /dev/vda 1 resize2fs /dev/vda1
服务器磁盘占满 df和du查看的容量不一样
df和du查看磁盘占用量不一致\ 可能是有些文件被删除了但是仍被进程占用
lsof|grep delete\ 查看哪些文件被占用
找到占用这些文件的进程,重启
恢复