溫馨提示×

centos nginx如何升級更新

小樊
47
2025-10-17 14:23:40
欄目: 智能運維

CentOS系統Nginx升級更新指南

一、升級前的準備工作

  1. 備份關鍵數據
    升級前務必備份Nginx配置文件和網站數據,防止操作失誤導致數據丟失。常用命令:
    sudo cp -r /etc/nginx /etc/nginx.bak  # 備份配置文件
    sudo cp -r /var/www/html /var/www/html.bak  # 備份網站數據(若有)
    
  2. 檢查當前Nginx版本
    通過以下命令確認當前安裝的Nginx版本及編譯參數(后續編譯需保持一致):
    nginx -V
    
  3. 更新系統包
    確保系統包為最新狀態,避免依賴沖突:
    sudo yum update -y
    
  4. 安裝EPEL倉庫(可選)
    若需通過Yum安裝較新版本的Nginx,需先安裝EPEL(Extra Packages for Enterprise Linux)倉庫:
    sudo yum install epel-release -y
    

二、通過Yum包管理器升級(推薦常規場景)

Yum是CentOS下最便捷的升級方式,適用于大多數生產環境,可自動解決依賴問題。

  1. 清理Yum緩存并更新索引
    sudo yum clean all
    sudo yum makecache
    
  2. 查看可升級的Nginx版本
    執行以下命令查看當前可用的Nginx版本(包括穩定版、主線版):
    sudo yum list nginx --showduplicates
    
  3. 升級Nginx
    若需升級到最新穩定版,直接運行:
    sudo yum update nginx -y
    
    若需升級到指定版本(如1.26.2),可添加版本號:
    sudo yum install nginx-1.26.2 -y
    
  4. 重啟Nginx并驗證
    升級完成后,重啟Nginx使新版本生效:
    sudo systemctl restart nginx
    
    檢查版本確認升級成功:
    nginx -v
    

三、手動編譯升級(適用于特定版本或自定義模塊)

若Yum源中沒有所需版本,或需要添加第三方模塊(如Lua、Redis模塊),需通過源碼編譯升級。

  1. 卸載舊版本(可選)
    若之前通過Yum安裝,可先卸載以避免沖突:
    sudo yum remove nginx -y
    
  2. 安裝編譯依賴
    編譯Nginx需要gcc、pcre、zlib等工具,執行以下命令安裝:
    sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel make
    
  3. 下載并解壓新版本源碼
    訪問Nginx官網(nginx.org)下載所需版本(如1.26.2),解壓后進入目錄:
    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
    
  4. 配置編譯參數
    必須使用與舊版本一致的編譯參數(通過nginx -V獲?。?,避免模塊丟失。示例:
    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx
    
  5. 編譯并安裝
    執行make編譯,make install安裝到指定目錄:
    sudo make
    sudo make install
    
  6. 替換二進制文件并平滑升級
    • 備份舊二進制文件:
      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)
      
  7. 重啟Nginx并驗證
    sudo systemctl restart nginx
    nginx -v  # 確認版本已更新
    

四、升級后的注意事項

  1. 驗證服務狀態
    確保Nginx服務正常運行,無報錯:
    sudo systemctl status nginx
    
  2. 檢查網站訪問
    通過瀏覽器或curl命令訪問網站,確認功能正常:
    curl -I http://localhost
    
  3. 監控性能
    升級后觀察服務器負載、響應時間等指標,確保沒有性能下降。
  4. 回滾準備
    若升級后出現問題,可通過備份快速回滾(如恢復配置文件、替換二進制文件)。

五、常見問題解決

  • 依賴錯誤:若編譯時提示缺少依賴,可通過yum install安裝對應包(如pcre-devel、zlib-devel)。
  • 配置文件錯誤:若nginx -t報錯,需根據提示修改/etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf。
  • 端口占用:若啟動失敗,可能是端口被占用,可通過netstat -tulnp | grep 80查看并停止占用進程。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女