关于Nginx平滑升级

阅读 646
收藏 27
2017-07-25
原文链接:www.huxd.org

最近Nginx报出漏洞CNNVD 关于Nginx range过滤器模块漏洞情况的通报 给出的升级建议为升级到最新的版本,f6cc1ae5c704447cb6210788b94fc6e0-image.png
然后接到通知,升级Nginx,现在已经升级完毕,现在记录一下。
一、首先查看一下Nginx版本

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

二、下载最新版本的nginx
网址:Nginx
三、将下载的文件上传到服务器中,解压

tar –zxf nginx-1.13.3.tar.gz

四、执行命令

./configure \

--**prefix=/usr/local/nginx/nginx-1.13.3** \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=**/var/temp/nginx**/client \

--http-proxy-temp-path=**/var/temp/nginx/**proxy \

--http-fastcgi-temp-path=**/var/temp/nginx**/fastcgi \

--http-uwsgi-temp-path=**/var/temp/nginx**/uwsgi \

--http-scgi-temp-path=**/var/temp/nginx**/scgi

五、执行,这里要主要,是只执行make,不是在执行make install

# make

六、将sbin下的nginx重命名为nginx.old

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

七、复制编译后的objs目录下的nginx到nginx安装目录的sbin下

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

八、这里可以测试一下新复制过来的文件是否生效,如果出现下面的 OK 与 successful为正确即可

# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

九、让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断

# kill -USR2 `cat /usr/local/nginx/nginx.pid`  更新配置文件
# kill -QUIT `cat /usr/local/nginx/nginx.pid.oldbin` 优雅的关闭

十、升级完成后,重新查看一下版本即可

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

十一、主要,这里的第八步,如果检测出现问题,就要查看,配置文件,conf下的nginx.conf就是你启动的那个nginx配置文件主要查看为error.log的生成路径,access.log的生成路径,这个是需要注意。

评论