在CentOS系统上更新或升级Nginx的步骤如下:
备份当前的Nginx配置文件:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo cp -r /etc/nginx/conf.d/ /etc/nginx/conf.d/.bak
编辑Yum仓库配置文件:
对于CentOS 7,你可以使用EPEL源:
sudo yum install epel-release
编辑 /etc/yum.repos.d/nginx.repo
文件,添加或更新Nginx源。
清除缓存并更新Yum包索引:
sudo yum clean all
sudo yum makecache
查看可升级的Nginx版本:
sudo yum list nginx --showduplicates
升级Nginx到最新版本:
sudo yum install nginx
验证Nginx版本是否升级成功:
nginx -V
重启Nginx服务:
sudo systemctl restart nginx
获取nginx的最新源码版本:
访问 nginx官方网站 下载最新版本的源码包。
解压源码:
tar -zxvf nginx-x.x.x.tar.gz
cd nginx-x.x.x
编译并安装:
安装编译环境和依赖包:
sudo yum install make zlib zlib-devel gcc libtool openssl openssl-devel
配置编译参数(根据实际情况可能会有所不同):
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module ...
编译并安装:
make
sudo make install
备份旧版本Nginx:
sudo cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
替换二进制文件:
sudo cp objs/nginx /usr/local/nginx/sbin/nginx
测试新版本Nginx:
/usr/local/nginx/sbin/nginx -t
启动新版本Nginx:
sudo /usr/local/nginx/sbin/nginx
向旧的主进程发送 USR2 信号,Nginx 会启动一个新版本的 master 进程和对应工作进程,和旧版一起处理请求:
kill -USR2 [旧主进程ID]
向旧的Nginx主进程发送 WINCH 信号,它会逐步关闭自己的工作进程,所有请求都会由新版 Nginx 处理:
kill -WINCH [旧主进程ID]
验证nginx版本号,并访问测试:
nginx -V
升级完毕,停止旧的主进程:
kill -QUIT [旧主进程ID]
请注意,在进行任何升级操作之前,强烈建议备份所有重要的配置文件和数据,以防升级过程中出现问题。