Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Nginx 啟動、停止、重啟、平滑升級操作命令完整整理

編輯:關於伺服器

Nginx 進程架構

Nginx 採用 **Master-Worker** 多進程模型:一個 Master 進程讀取配置、管理 Worker 進程;多個 Worker 進程處理實際請求。操作本質是向 Master 進程發送訊號。

基本操作命令

啟動

nginx -c /usr/nginx/conf/nginx.conf
# -c 指定配置檔路徑,若 nginx 在 PATH 中且配置在預設位置可省略

停止 (三種強度)

  1. 優雅關閉 (Graceful / 從容):完成當前請求後關閉 Worker。
    kill -QUIT `cat /usr/nginx/logs/nginx.pid`
    # 或直接 kill -QUIT 
    
  2. 快速關閉 (Fast / Terminate):立即中止。
    kill -TERM 
    
  3. 強制殺掉 (Force Kill):系統層面強制結束,可能遺留臨時檔/共享記憶體。
    pkill -9 nginx
    

平滑重啟 (Reload 配置)

# 建議先測試配置語法
nginx -t -c /usr/nginx/conf/nginx.conf

# 發送 HUP 訊號:Master 重讀配置、啟動新 Worker、優雅關閉舊 Worker
kill -HUP 
# 或
kill -HUP `cat /usr/nginx/logs/nginx.pid`

進階:平滑升級 (零停機部署新版本/模組)

  1. 用新版本二進制檔替換舊檔 (或編譯安裝至同目錄)。
  2. 向舊 Master 發送 USR2 訊號:
    kill -USR2 
    

    舊 Master 將 .pid 改名為 .pid.oldbin,並啟動新 Master + 新 Worker。此時新舊版本**共存處理請求**。

  3. 逐步關閉舊版 Worker:
    kill -WINCH 
    

    舊 Worker 隨請求完成自然退出,新 Worker 接管流量。

  4. 確認新版穩定後,決定保留新版或回滾:
    • 保留新版:向舊 Master 發送 QUIT 優雅關閉舊 Master。
      kill -QUIT 
      
    • 回滾舊版:向新 Master 發送 QUIT,再向舊 Master 發送 HUP 重啟舊 Worker。
      kill -QUIT 
      kill -HUP 
      

常用 PID 取得方式

ps -ef | grep nginx
# 找 master process 的 PID

# 若配置了 pid 檔路徑 (預設 logs/nginx.pid)
cat /usr/nginx/logs/nginx.pid

配置檔語法檢查 (必做)

nginx -t -c /usr/nginx/conf/nginx.conf
# 輸出 "syntax is ok" "test is successful" 才可安全 reload/upgrade

總結表

操作訊號指令範例
啟動-nginx -c /path/nginx.conf
優雅停止QUITkill -QUIT `cat /var/run/nginx.pid`
快速停止TERMkill -TERM
強制停止KILL (9)pkill -9 nginx
平滑重啟HUPkill -HUP
平滑升級啟動新版USR2kill -USR2
關閉舊版 WorkerWINCHkill -WINCH
Copyright © Windows教程網 All Rights Reserved