热部署(方案一)
一、修改版本号
1.进入源码包目录
cd /data/nginx-1.12.0
2.修改内核文件
vim src/core/nginx.h
3.查看安装参数并复制参数
升级一般是添加新的模块,或者升级版本,所以要参考以前编译的模块,如果 不添加,那么以前的模块就不能使用了
/usr/local/nginx/sbin/nginx -V
4. 预编译\编译&安装
./configure --prefix=/usr/local/nginx/ --with-http_degradation_module --with-http_stub_status_module
make -j4 && make -j4 install
5.直接升级
注:nginx的启动路径不能做软链接、环境变量,否侧会报错误,
make upgrade
6.效果
热部署(方案二) 支持回滚
一、修改版本号
1.进入源码包目录
cd /data/nginx-1.12.0
2.修改内核文件
vim src/core/nginx.h
3.查看安装参数并复制参数
升级一般是添加新的模块,或者升级版本,所以要参考以前编译的模块,如果 不添加,那么以前的模块就不能使用了
/usr/local/nginx/sbin/nginx -V
4. 预编译\编译&安装
./configure --prefix=/usr/local/nginx/ --with-http_degradation_module --with-http_stub_status_module
make -j4 && make -j4 install
- 生成新的master进程
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
- 优雅退出老worker进程
kill -WINCH 33565
升级完毕
######################
升级后不稳定,可以回滚到旧版本
7.回滚
7.1.重新拉起老的worker进程:
kill -HUP 33565
7.2.退出新的master进程
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
7.3. 换回nginx文件
rm -rf /usr/local/nginx/sbin/nginx
mv /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
不用升级直接隐藏版本号
1.修改nginx 配置文件
vim /usr/locad/nginx/conf/nginx.conf
在http { } 增加 server_tokens off;
2.重载配置文件
/usr/locad/nginx/sbin/nginx -s reload