nginx高性能WEB服务器系列之三版本升级

时间:2023-12-26 19:04:55

nginx系列友情链接:
nginx高性能WEB服务器系列之一简介及安装
https://www.cnblogs.com/maxtgood/p/9597596.html
nginx高性能WEB服务器系列之二命令管理
https://www.cnblogs.com/maxtgood/p/9597990.html
nginx高性能WEB服务器系列之三版本升级
https://www.cnblogs.com/maxtgood/p/9598113.html
nginx高性能WEB服务器系列之四配置文件详解
https://www.cnblogs.com/maxtgood/p/9598333.html
nginx高性能WEB服务器系列之五--实战项目线上nginx多站点配置
https://www.cnblogs.com/maxtgood/p/9598610.html
nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
https://www.cnblogs.com/maxtgood/p/9599068.html
nginx高性能WEB服务器系列之七--nginx反向代理
https://www.cnblogs.com/maxtgood/p/9599335.html
nginx高性能WEB服务器系列之八--nginx日志分析与切割
https://www.cnblogs.com/maxtgood/p/9599542.html
nginx高性能WEB服务器系列之九--nginx运维故障日常解决方案
https://www.cnblogs.com/maxtgood/p/9599752.html

注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

nginx的强大之处不必要我细说,当初第一次接触nginx的时候就发现了它的强大之处,并且自我觉得非常有必要出一篇记录nginx的各个功能及坑点。

欢迎大家对nginx感兴趣的朋友们来一起学习与及时提出错误及误点。有问题的可以在评论区@我。

1.nginx升级

因为本人碰见过自己线上业务使用检测软件对web URL进行检测的时候,提示存在安全隐患,并且详情为“空指针间接引用漏洞出现个数超出,resolver存在释放后重利用漏洞。远程攻击者通过CNAME响应处理相关的构造的DNS响应,可造成worker进程崩溃,拒绝服务”具体截图如下:

nginx高性能WEB服务器系列之三版本升级

解答:其实解决办法很简单,就是本人之前搭建版本为nginx1.8.1,那么把nginx版本升级一下即可以避免。本文主要讲解怎么样进行nginx在线升级。

#首先下载nginx最新软件包,这里我下载了nginx1.12.2版本

wget http://nginx.org/en/download.html/nginx-1.12.2

#查看当前nginx版本号

 cd /usr/local/nginx/ (进入自己nginx的安装目录)
sbin/nginx -V (查看版本号)

nginx version: nginx/1.9.4
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#解压新下载的软件包,并且进入到解压目录下

 tar xf nginx-1.12..tar.gz
cd nginx-1.12.

#接下来编译

 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module(以上面显示参数为准)

#make

 make   (注意,不需要make install,不然一些配置文件都会更新)

#更改老版本的nginx可执行文件

 mv /usr/local/nginx/sbin/nginx     /usr/local/nginx/sbin/nginx.old   ###把老版本的nginx更名
cp nginx /usr/local/nginx/sbin/nginx ###拷贝新的nginx文件过去

#进入nginx安装目录,测试查看nginx版本号

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

#nginx重启分两种,一种平滑重启,一种直接重启

方法一平滑重启:

#让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 -s reload 就可以)

方法二直接重启:

 /usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

#重启过后查看最新版本

 sbin/nginx -V

至此,nginx升级完成。