nginx如何更新版本
导读:Nginx版本更新指南 一 升级方式概览 按安装来源选择升级路径:使用包管理器(如 APT/YUM/DNF)最省心;从源码编译可控性更高,适合需要特定模块或自定义路径的场景。 按业务要求选择策略:优先采用平滑升级(不中断连接);如允许短暂...
Nginx版本更新指南
一 升级方式概览
- 按安装来源选择升级路径:使用包管理器(如 APT/YUM/DNF)最省心;从源码编译可控性更高,适合需要特定模块或自定义路径的场景。
- 按业务要求选择策略:优先采用平滑升级(不中断连接);如允许短暂停机,可选择快速替换二进制后重启。
二 通过包管理器升级 Ubuntu Debian
- 备份配置与检查版本
- 备份:
sudo cp -r /etc/nginx /etc/nginx_backup - 版本:
nginx -v或nginx -V
- 备份:
- 添加官方 Nginx APT 源并升级
- 导入密钥:
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/nginx.gpg - 添加源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/nginx.gpg] https://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list > /dev/null - 升级:
sudo apt update & & sudo apt install nginx - 重启:
sudo systemctl restart nginx
- 导入密钥:
- 验证
- 版本:
nginx -v - 状态:
systemctl status nginx
- 版本:
- 说明:添加官方源后,后续可直接用
apt upgrade nginx获取稳定版更新。
三 通过包管理器升级 CentOS RHEL
- 备份配置与检查版本
- 备份:
sudo cp -r /etc/nginx /etc/nginx_backup - 版本:
nginx -v或nginx -V
- 备份:
- 使用 YUM/DNF 升级(以已配置 EPEL 或官方 Nginx 源为前提)
- 升级:
sudo yum update nginx或sudo dnf upgrade nginx - 重启:
sudo systemctl restart nginx
- 升级:
- 验证
- 版本:
nginx -v - 状态:
systemctl status nginx
- 版本:
- 说明:若系统仓库版本较旧,可先添加 EPEL 或 Nginx 官方仓库再执行升级。
四 从源码编译升级 平滑升级与快速替换
- 准备与检查
- 查看旧版本与编译参数:
/usr/local/nginx/sbin/nginx -V - 备份可执行文件与配置:
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
- 查看旧版本与编译参数:
- 编译新版本(关键:只 make,不要 make install)
- 下载解压:
wget -c https://nginx.org/download/nginx-< 新版本> .tar.gz & & tar -zxvf nginx-< 新版本> .tar.gz - 进入目录并复用旧参数:
./configure < 旧版本的 configure 参数> - 编译:
make(生成于objs/nginx)
- 下载解压:
- 平滑升级(推荐,零或极少中断)
- 替换二进制:
cp objs/nginx /usr/local/nginx/sbin/ - 在源码目录执行:
make upgrade(会执行nginx -t并优雅切换) - 验证:
/usr/local/nginx/sbin/nginx -V
- 替换二进制:
- 快速替换(允许短暂停机)
- 停止旧进程:
/usr/local/nginx/sbin/nginx -s stop - 替换二进制:
cp objs/nginx /usr/local/nginx/sbin/ - 启动新进程:
/usr/local/nginx/sbin/nginx - 验证:
/usr/local/nginx/sbin/nginx -V
- 停止旧进程:
- 回滚
- 快速回滚:
cp /usr/local/nginx/sbin/nginx.old /usr/local/nginx/sbin/nginx & & /usr/local/nginx/sbin/nginx - 平滑回滚:在旧版源码目录执行
make upgrade(会切回旧二进制)
- 快速回滚:
五 回滚与安全加固
- 回滚要点
- 保留旧二进制(如 nginx.old),必要时直接替换并启动;或从旧版源码目录执行
make upgrade切回。
- 保留旧二进制(如 nginx.old),必要时直接替换并启动;或从旧版源码目录执行
- 安全加固建议
- 隐藏版本信息:在
nginx.conf的http块设置server_tokens off; - 仅启用必要模块:编译时剔除不需要的模块(如
--without-http_autoindex_module) - 强化 SSL/TLS:启用 TLS 1.2/1.3,使用强加密套件,配置
ssl_protocols、ssl_ciphers、ssl_prefer_server_ciphers - 限制请求方法:如
if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } - 定期更新与审计:关注官方安全公告,定期测试与扫描配置
- 隐藏版本信息:在
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: nginx如何更新版本
本文地址: https://pptw.com/jishu/748620.html
