2026年6月3日 星期三

Nginx漏洞修補與升級方式說明(Windows)

面對這個剛爆發不久的 CVE-2026-42945 (NGINX Rift) 高風險漏洞,果斷選擇升級是非常正確的決定。這個漏洞存在於 Nginx 的重寫模組(ngx_http_rewrite_module)中,會導致堆疊緩衝區溢位(Heap Buffer Overflow),可能引發遠端程式碼執行(RCE)或阻斷服務攻擊(DoS)。

針對 Windows 環境下將 Nginx 1.19.6 升級的完整步驟與注意事項,為您整理如下:

步驟一:確認目標版本
官方已針對此漏洞釋出修補版本。既然您目前使用的是開源版本,建議升級至以下版本或更新的版本:

穩定版 (Stable): 1.30.1 或以上

主力版 (Mainline): 1.31.0 或以上

請至 Nginx 官方下載頁面 (nginx.org) 下載對應 Windows 的 .zip 壓縮包。

步驟二:備份現有環境(核心步驟)
在進行任何升級前,請務必先備份目前的設定與檔案,以防萬一需要復原。
請拷貝現有 Nginx 目錄(例如 C:\nginx-1.19.6\)中的以下內容:

conf/ 目錄:包含主要的 nginx.conf 及其他設定檔。

html/www/ 目率:您的網頁網頁靜態檔案(若有放在這裡)。

SSL 憑證:若有存放憑證在 Nginx 目錄下,請務必備份。

步驟三:執行升級流程 (無縫替換)
Windows 版的 Nginx 不需要安裝,它是以綠色免安裝(攜帶版)的方式執行。請依照以下步驟手動替換:

1. 停止目前的 Nginx 服務
打開命令提示字元 (CMD) 並切換到您目前的 Nginx 目錄,執行以下指令安全停止服務:

$ nginx.exe -s quit && sudo apt-get upgrade

(如果 Nginx 完全沒有回應,可以使用 taskkill /f /im nginx.exe 強制結束行程)。若您有將 Nginx 註冊為 Windows 服務(如使用 WinSW 或 NSSM),請至 Windows「服務」視窗中將其停止

2. 解壓新版本

將下載好的新版本(例如 nginx-1.30.1.zip)解壓縮到新的目錄(例如 C:\nginx-1.30.1\)。

3. 遷移設定檔

將步驟二備份的 conf/ 目錄內的所有設定檔(特別是 nginx.conf),複製並覆蓋到新版 C:\nginx-1.30.1\conf\ 目錄中。

4. 測試新版本設定檔是否相容

從 1.19.6 跨越到 1.30.x 版本跨度較大,某些語法可能有所變更。在啟動前,請在 CMD 切換到新目錄並執行測試:

cd C:\nginx-1.30.1

nginx.exe -t

  • 若顯示 syntax is oktest is successful:代表設定檔相容,可以正常使用。

  • 若報錯:請根據錯誤訊息調整 nginx.conf 中不再支援的舊語法。

5. 啟動新版 Nginx

測試成功後,直接啟動新版 Nginx:


start nginx

 

(若原本有使用 Windows 服務工具如 WinSW,請記得將工具內的執行路徑更新為新版的 C:\nginx-1.30.1\nginx.exe,然後啟動該服務)


但是

Windows 綠色版唯一的「小缺點」與維運解法

雖然它是免安裝的,但這也意味著:當 Windows 伺服器重開機時,Nginx 預設是不會自己啟動的。 在企業的 Windows Server 生產環境中,系統管理員通常不會手動去雙擊 nginx.exe,而是會使用第三方工具(最常見的是 WinSW 或 NSSM),將這個綠色版的 nginx.exe 包裝註冊成「Windows 系統服務」。

這時候就要提到NSSM的應用。


沒有留言:

Nginx漏洞修補與升級方式說明(Windows)

面對這個剛爆發不久的 CVE-2026-42945 (NGINX Rift) 高風險漏洞,果斷選擇升級是非常正確的決定。這個漏洞存在於 Nginx 的重寫模組(ngx_http_rewrite_module)中,會導致堆疊緩衝區溢位(Heap Buffer Overflow)...