nginx 热部署

热部署主要是是安装目录下objs目录的替换。详细安装可以参考https://www.jianshu.com/p/0237227b9bd4。

这里有2个假设。当前系统的nginx安装在/usr/local/nginx下。

准备下载的nginx,解压缩在/home/owen/nginx-1.16.0下

1. 在nginx 官方下载最新包,wget http://nginx.org/download/nginx-1.16.0.tar.gz

tar -zxvf nginx-1.16.0.tar.gz

configure make make install后。会生成objs文件。

2. copy nginx 到准备热部署的目录下,注意先备份目标目录下的nginx。

mv /usr/local/nginx/sbin/ngin /usr/local/nginx/sbin/nginx_backup

3. cp 最新的nginx到准备替换的目录下。 cp /home/owen/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/

4. 通知当前在运行的nginx,系统要进行热部署。查看/usr/local/nginx/logs/nginx.pid,得到进程号为32438(你需要看你自己目录的进程)

执行命令 kill -USR2 32438

ps -ef | grep nginx 会发现目前系统中有2个nginx在运行,此时需要告诉32438 进程的nginx 优雅的关闭。

kill -WINCH 32438 

这样nginx热部署就成功了。

nginx winch后,旧的nginx进程并没有关闭。剩下可以reopon回来。

你可能感兴趣的:(nginx 热部署)