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

 

成功升级,漏洞修复。

posted @ 2019-04-11 16:04  村长叫我返去扒龙船  阅读(765)  评论(0编辑  收藏  举报