因服务器漏扫F5 Nginx 安全漏洞(CVE-2024-7347)
这里选择升级nginx解决
笔者服务器 nginx 目前是nginx-1.23.3 安装在/usr/local/nginx
此次版本为1.27.2 需要保留原来配置
以下为操作步骤:
一、备份现有 Nginx 配置和文件
备份 Nginx 配置文件:
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
备份 Nginx 安装目录:
cp -r /usr/local/nginx /usr/local/nginx-1.23.3.bak
二、下载并解压 Nginx 1.27.2
下载 Nginx 1.27.2 安装包,可以从 Nginx 官方网站下载
cd /usr/local/
tar -zxvf nginx-1.27.2.tar.gz
三、编译和安装 Nginx 1.27.2
cd /usr/local/nginx-1.27.2
配置编译选项,确保保留原来的模块和配置:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-stream --with-stream_ssl_module --with-pcre
这里的配置选项可以根据你的实际需求进行调整。如果在 1.23.3 版本中有自定义的模块或配置,可以在这个步骤中添加相应的选项以确保新的版本也包含这些功能。
编译并安装
make && make install
四、平滑升级
- 发送信号给旧版本的 Nginx 主进程,让它重新加载配置文件并启动新的工作进程: ```kill -USR2 `cat /usr/local/nginx/logs/nginx.pid````
- 关闭旧版本的工作进程: ```kill -WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin````
- 确认升级成功后,可以关闭旧版本的主进程: ```kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin````
五、检查升级结果
检查 Nginx 状态:
/usr/local/nginx/sbin/nginx -t
查看 Nginx 版本:
/usr/local/nginx/sbin/nginx -V
3.查看 Nginx 运行状态:
ps -ef | grep nginx
如果没有看到 Nginx 进程在运行,说明 Nginx 可能没有启动或者已经意外停止了。如果看到进程在运行,但仍然出现错误,可能是 pid 文件出现了问题。
先删除现有的 nginx.pid 文件
rm /usr/local/nginx/logs/nginx.pid
尝试重新启动
cd /usr/local/nginx/sbin
./nginx
如果启动成功,Nginx 会自动创建一个新的 pid 文件,其中包含正确的进程 ID。
文章内容参考:豆包ai
版权归原作者 mtdxns 所有, 如有侵权,请联系我们删除。