一、 现在nginx版本为:nginx version: nginx/1.20.1
二、升级方案:
1、 原计划使用rpm方式升级nginx版本到1.22.0,并使用yum源升级nginx模块,因yum源中nginx模块更新不及时,无法更新1.22.0版本的nginx模块,为避免后期发生类似事件,故此次升级使用官方nginx1.22.0版本编译安装。
2、 首先到nginx官网下载最新稳定版。
官网地址:https://nginx.org/en/download.html
3、 上传安装包到/opt目录。
4、 为避免新版本nginx无法启动,首先备份原来的nginx配置文件
1)、停止nginx运行:systemctl stop nginx
查看nginx状态:systemctl status nginx
2)、备份旧版本安装文件:cp -r /etc/nginx/* /etc/nginx_bak/
3)、备份旧版本启动脚本:mv /usr/sbin/nginx /usr/sbin/nginx.bak
5、首先查看一下旧版本所需模块:
6、编译安装后,我们也会通过配置systemctl服务的方式启动nginx,现在我们先删除现有nginx。 可以使用: yum remove nginx
find / -name nginx
然后使用rm 命令删除。
7、此时旧版本1.20nginx已卸载。查看一下systemctl有没有nginx的启动脚本。
8、编译安全nginx1.22.0
进入安装包目录:
9、安装nginx依赖包
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel libxslt-devel gd-devel perl-ExtUtils-Embed
10、解压安装包
tar -zxvf nginx-1.22.0.tar.gz
进入解压后的目录:
cd nginx-1.22.0/
查看一下动态模块帮助,然后根据需要添加编译模块。
./configure --help | grep dynamic
编译
./configure --with-http_xslt_module --with-http_image_filter_module --with-http_perl_module --with-mail --with-stream
11、然后执行make && make install
12、安装完成后进入nginx安装目录:/usr/local/nginx
13、现在是只能通过脚本启动nginx。我们配置成服务启动。
#在/usr/lib/systemd/system 目录下创建此脚本
[root@localhost ~]# vim /usr/lib/systemd/system/nginx.service
[root@localhost ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
启动nginx
systemctl start nginx
停止nginx
systemctl stop nginx
重启nginx
systemctl restart nginx
重新加载配置文件
systemctl reload nginx
14、使用编译安装nginx默认是在/usr/local/nginx目录。