起因:系统漏洞扫描出高危漏洞 :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版本及相关参数