起因:服务器所用nginx是1.19.2版本扫出来存在安全隐患。需要我们升级到1.20.0以上
cd /usr/local/ 一般我们的nginx会在这里, 当然这不是绝对的也可能是你自定义的路径。
1、下载新版本 这里用1.21.1
wget -c http://nginx.org/download/nginx-1.21.1.tar.gz
2、解压
tar zxvf nginx-1.21.1.tar.gz
3、备用一下旧版本以防意外(我的旧版本是1.19.2版本)
cp -r nginx-1.19.2 ./nginx-1.19.2.bak
4、到旧版本的sbin下看执行./nginx -V
cd /usr/local/nginx-1.19.2/sbin (这是我的旧版本的路径) 下图可以看到我的旧版本信息。红线指的东西等会儿要用到
查看完旧版本信息可以执行如下命令,给旧版本改个名
mv ./nginx ./nginx.old
5、编译新版本–1.切到新版本下 2.执行编译命令
(这里要注意, 编译新版本时的路径是和旧版本一致的 如上图 然后在最后加了&&make)
cd /usr/local/nginx-1.21.1
./configure --prefix=/usr/local/nginx-1.19.2 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-pcre&&make
6.把编译后的新版nginx复制到旧版本的sbin下
cd /usr/local/nginx-1.19.2/sbin
cp /usr/local/nginx-1.21.1/objs ./
复制过来后 执行下**./nginx -t** 测试一下
出现这个ok 和 successful说明我们的新版本文件可以正常执行
7.升级新版本
将旧版本nginx的pid改为nginx.pid.oldbin
cd /usr/local/nginx-1.19.2/logs/
kill -USR2 `cat /usr/local/nginx-1.19.2/logs/nginx.pid`
--此时执行ll 可以看到多了一个nginx.pid.oldbin文件
ls -lit nginx.pid.oldbin
----退化旧版本
kill -QUIT `cat /usr/local/nginx-1.19.2/logs/nginx.pid.oldbin`
8.这时可以查看下版本号(完成升级)
/usr/local/nginx-1.19.2/sbin/nginx -V