在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]
請注意,在進行任何升級操作之前,強烈建議備份所有重要的配置文件和數據,以防升級過程中出現問題。