Nginx 是一个高性能的开源 Web 服务器 和 反向代理服务器,同时支持多种协议(如 HTTP/HTTPS、TCP/UDP、邮件协议等)
1.nginx 平滑升级
1. 获取旧版本编译参数
nginx -V 2>&1 | grep configure
2. 编译新版本(保持配置一致)或者手动下载nginx二进制包进行上传编译
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
./configure --prefix=/usr/local/nginx --with-http_ssl_module [其他原有参数]
make # 不要执行 make install 该部分与上面获取旧版本编译参数输出内容保持一致
3. 备份旧二进制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4. 替换可执行文件
# 强制覆盖(需在 make 后执行)
cp -f objs/nginx /usr/local/nginx/sbin/
5. 发送升级信号
# 发送 USR2 信号启动新进程
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
# 发送 WINCH 信号关闭旧 worker 进程
kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`
# 确认新版本运行后,终止旧 master 进程
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
回滚方案(紧急恢复)
# 1. 恢复旧二进制
cp /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx
# 2. 重启服务
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
2.nginx 隐藏版本信息
http 模块中配置 server_tokens off;