LNMP安装的nginx从1.12.1升级到1.14.1

首先感谢http://www.aledk.com/587.html提供的升级方法
今天看到阿里云漏洞预警:阿里云云盾应急响应中心监测到Nginx近日发布安全更新,披露了三个可能导致服务器拒绝服务的漏洞:CVE-2018-16843、CVE-2018-16844和CVE-2018-16845。位于Nginx HTTP/2 模块和流媒体MP4模块中。攻击者通过构造特定的恶意HTTP请求,可远程DoS服务器。
解决方案:
升级至Nginx最新安全版本(1.15.6或1.14.1)
那就升级吧。

1,查看安装目录:

ps -ef | grep nginx | grep master | awk -F" " '{print $11}'

2,查看版本和旧版本编译参数:

/usr/local/nginx/sbin/nginx -V

需要记录下configure arguments参数,用于新版本编译

 --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-openssl=/root/lnmp1.4/src/openssl-1.0.2l --with-ld-opt='-ljemalloc'

3,下载升级版本:

wget http://nginx.org/download/nginx-1.14.1.tar.gz

4,解压下载好的文件

 tar xf nginx-1.14.1.tar.gz

5,并进入文件夹

 cd nginx-1.14.1

6,进行编译,./configure后面跟的就是第2步查看到的configure arguments

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --with-openssl=/root/lnmp1.4/src/openssl-1.0.2l --with-ld-opt='-ljemalloc'

7,只编译不安装

make,

8,备份旧版本:

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old,

9,替换旧的Nginx的执行程序

cp objs/nginx /usr/local/nginx/sbin/

10,旧版本停止接收请求,且处理完现有请求后关闭连接,停止(可以查看nginx.conf文件找到pid保存的位置,这里存放的目录是/usr/local/nginx/logs/)

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

11,执行完毕后,可以看到pid目录多了存放了旧版本nginx的pid号

 ls /usr/local/nginx/logs/

显示:

nginx.pid nginx.pid.oldbin

12,关闭旧进程,完成顺滑升级

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

 

13,查看升级后的版本

 /usr/local/nginx/sbin/nginx -v

成功升级,漏洞修复。

原文地址:https://www.cnblogs.com/xianxh/p/10690310.html