nginx系列友情链接:
https://www.cnblogs.com/maxtgood/p/9597596.htmlhttps://www.cnblogs.com/maxtgood/p/9597990.htmlhttps://www.cnblogs.com/maxtgood/p/9598113.htmlhttps://www.cnblogs.com/maxtgood/p/9598333.htmlhttps://www.cnblogs.com/maxtgood/p/9598610.htmlhttps://www.cnblogs.com/maxtgood/p/9599068.htmlhttps://www.cnblogs.com/maxtgood/p/9599335.htmlhttps://www.cnblogs.com/maxtgood/p/9599542.htmlhttps://www.cnblogs.com/maxtgood/p/9599752.html注:原创作品,允许转载,转载时请务必以超链接形式标明文章 、作者信息和本声明。否则将追究法律责任。
nginx的强大之处不必要我细说,当初第一次接触nginx的时候就发现了它的强大之处,并且自我觉得非常有必要出一篇记录nginx的各个功能及坑点。
欢迎大家对nginx感兴趣的朋友们来一起学习与及时提出错误及误点。有问题的可以在评论区@我。
1.nginx升级
因为本人碰见过自己线上业务使用检测软件对web URL进行检测的时候,提示存在安全隐患,并且详情为“空指针间接引用漏洞出现个数超出,resolver存在释放后重利用漏洞。远程攻击者通过CNAME响应处理相关的构造的DNS响应,可造成worker进程崩溃,拒绝服务”具体截图如下:
解答:其实解决办法很简单,就是本人之前搭建版本为nginx1.8.1,那么把nginx版本升级一下即可以避免。本文主要讲解怎么样进行nginx在线升级。
#首先下载nginx最新软件包,这里我下载了nginx1.12.2版本
wget http://nginx.org/en/download.html/nginx-1.12.2
#查看当前nginx版本号
1 cd /usr/local/nginx/ (进入自己nginx的安装目录) 2 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 2017TLS SNI support enabledconfigure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module#解压新下载的软件包,并且进入到解压目录下
1 tar xf nginx-1.12.2.tar.gz2 cd nginx-1.12.2
#接下来编译
1 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module(以上面显示参数为准)
#make
1 make (注意,不需要make install,不然一些配置文件都会更新)
#更改老版本的nginx可执行文件
1 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old ###把老版本的nginx更名2 cp nginx /usr/local/nginx/sbin/nginx ###拷贝新的nginx文件过去
#进入nginx安装目录,测试查看nginx版本号
cd /usr/local/nginxsbin/nginx -tthe configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful
#nginx重启分两种,一种平滑重启,一种直接重启
方法一平滑重启:
#让nginx把nginx.pid改成nginx.pid.oldbin 跟着启动新的nginx
1 kill -USR2 `cat /usr/local/nginx/nginx.pid`2 kill -QUIT `cat /usr/local/nginx/nginx.pid.oldbin`3 (/usr/local/nginx/sbin/nginx -s reload 就可以)
方法二直接重启:
1 /usr/local/nginx/sbin/nginx -s stop2 /usr/local/nginx/sbin/nginx
#重启过后查看最新版本
1 sbin/nginx -V
至此,nginx升级完成。