CentOS下nginx版本平稳升级记录 CVE-2019-9513 / CVE-2019-9511 / CVE-2019-9516
起因:系统漏洞扫描出高危漏洞 :CVE-2019-9513 / CVE-2019-9511 / CVE-2019-9516,需升级nginx。
初次安装教程:Nginx 安装配置 | 菜鸟教程 (runoob.com)
升级步骤:
下载地址:https://nginx.org/en/download.html,选择了稳定版本1.22.1。
将下载好的源码包上传至服务器路径/usr/local/nginx(原nginx安装路径),并进入该目录。
解压:
tar -zxvf nginx-1.22.1.tar.gz
在编译前要先查一下编译参数,要和之前的一致,查询命令…/nginx/sbin/nginx -V(大V查参数,小v查版本)
例如:我之前的低版本的nginx安装在/usr/local/nginx下,
[approot@lnx-xxxx-xxx nginx]$ /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.15.10 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --with-http_stub_status_module --with-http_ssl_module
可以看见configure arguments:xxxxx这些参数。
解压后,进入nginx-1.22.1文件夹下进行编译:
[approot@lnx-xxxx-xxx nginx-1.22.1]$ ./configure --with-http_stub_status_module --with-http_ssl_module
注意:./configure后面的--prefix=......参数是你之前版本的nginx -V 下的configure arguments:xxxx内的参数 原封不动的粘贴过来。回车执行后会执行一大堆东西。
接下来需要再执行make命令:
make #注意: 执行编译,切记不要安装也就是不要去执行 make install
执行完毕后下面就是需要备份原有nginx版本了
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
再把nginx-1.22.1的下面的nginx启动文件复制到/usr/local/nginx/sbin/下
cp /usr/local/nginx-1.22.1/objs/nginx /usr/local/nginx/sbin
到这里基本以完成了 下面就是进行重启nginx
cd /usr/local/nginx/sbin/nginx
关闭之前服务
./nginx.old -s stop
启动新版本服务
./nginx
至此已完成升级,查看版本
[approot@lnx-xxxx-xxx sbin]$ ./nginx -V nginx version: nginx/1.22.1 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --with-http_stub_status_module --with-http_ssl_module
已更新至新版本,在原有的nginx服务上更新新版本,原有配置文件不会受到影响,新的nginx服务可正常使用。
以下为nginx的几个常用命令:
/usr/local/nginx/sbin/nginx -t # 检查配置文件nginx.conf的正确性 /usr/local/nginx/sbin/nginx -s reload # 重新载入配置文件 /usr/local/nginx/sbin/nginx -s reopen # 重启 Nginx /usr/local/nginx/sbin/nginx -s stop # 停止 Nginx /usr/local/nginx/sbin/nginx -V # 检查nginx版本及相关参数