CentOS系統Nginx升級更新指南
sudo cp -r /etc/nginx /etc/nginx.bak # 備份配置文件
sudo cp -r /var/www/html /var/www/html.bak # 備份網站數據(若有)
nginx -V
sudo yum update -y
sudo yum install epel-release -y
Yum是CentOS下最便捷的升級方式,適用于大多數生產環境,可自動解決依賴問題。
sudo yum clean all
sudo yum makecache
sudo yum list nginx --showduplicates
sudo yum update nginx -y
若需升級到指定版本(如1.26.2),可添加版本號:sudo yum install nginx-1.26.2 -y
sudo systemctl restart nginx
檢查版本確認升級成功:nginx -v
若Yum源中沒有所需版本,或需要添加第三方模塊(如Lua、Redis模塊),需通過源碼編譯升級。
sudo yum remove nginx -y
sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel make
cd /usr/local/src
sudo wget http://nginx.org/download/nginx-1.26.2.tar.gz
sudo tar zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2
nginx -V
獲?。?,避免模塊丟失。示例:./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
make
編譯,make install
安裝到指定目錄:sudo make
sudo make install
sudo cp /usr/sbin/nginx /usr/sbin/nginx.old
sudo cp /usr/local/nginx/sbin/nginx /usr/sbin/nginx
sudo nginx -t
# 向舊主進程發送USR2信號,啟動新主進程
sudo kill -USR2 $(cat /run/nginx.pid)
# 向舊主進程發送WINCH信號,逐步關閉舊worker進程
sudo kill -WINCH $(cat /run/nginx.pid.oldbin)
# 驗證新版本運行正常后,關閉舊主進程
sudo kill -QUIT $(cat /run/nginx.pid.oldbin)
sudo systemctl restart nginx
nginx -v # 確認版本已更新
sudo systemctl status nginx
curl
命令訪問網站,確認功能正常:curl -I http://localhost
yum install
安裝對應包(如pcre-devel
、zlib-devel
)。nginx -t
報錯,需根據提示修改/etc/nginx/nginx.conf
或/usr/local/nginx/conf/nginx.conf
。netstat -tulnp | grep 80
查看并停止占用進程。