NGINX 1.31.1 在三天前(2026 年 5 月 22 日)釋出,跟多數 NGINX 點版號一樣,標籤寫著低調的「穩定性與 SSL 相容性」。但這個標籤底下藏了四項變更,加起來足以送走我們從 2016 年帶到現在的三個老寫法:手工拼湊的 CONNECT 通道、為了關掉 sticky 模組而動到 configure 階段、以及對延遲敏感流量的脆弱 round-robin upstream。如果你在 production 跑 NGINX——你會看這份內容大概就是——這是今年最低調、但最重要的釋出之一。
一、OpenSSL 4.0 相容性「真的能編了」
OpenSSL 4.0 已於 2026 年 4 月正式 GA,而 1.31.1 是第一個「不打 patch 就能跟 4.0 對齊編譯」的 NGINX 版本。這件事比聽起來更要緊。OpenSSL 4.0 移除一大票棄用 API(最顯著的是大半 ENGINE 機制)、收緊預設 cipher、改寫了 provider 的載入方式。如果你習慣自編 NGINX——台灣 Alpine、Rocky Linux 主機常見做法——你現有的 1.30.x build 一旦碰到更新過 libssl 的主機,就會開始編不過。把六月排一個 rebuild window,別讓無人值守的安全更新逼你在凌晨三點處理它。
二、全新 ngx_http_tunnel_module
這是本次的頭條。NGINX 終於把 HTTP 通道做成一等公民模組,讓你不必再用 proxy_pass + proxy_http_version 1.1 + proxy_set_header Upgrade 那一串 incantation 來處理 CONNECT。對於跑內部 AI agent 閘道的團隊——而 2026 年 5 月,這幾乎是每一家——這很重要:agentic client 開的是長壽命雙向串流,舊的「Upgrade 完祈禱」做法在負載下大約每 800 個 session 會掉一個。新的 tunnel 模組用正規 state machine、單連線預算、明確 timeout 解掉這個問題。
遷移成本很小。把處理 CONNECT 的 location 區塊改成 tunnel_pass,加一行 tunnel_buffer_size,把舊的 Upgrade 標頭刪掉。WebSocket 掉線率會下降,error log 也會明顯乾淨。
三、「least_time」指令從 Plus 下放到開源版
過去十年,least_time——把新請求送到「平均回應時間最短」的 upstream——是 NGINX Plus 的專屬功能。1.31.1 把它放進開源 NGINX。如果你後端是一小群 Laravel 或 Node 服務、目前還在用 least_conn 或預設 round-robin,改成 least_time header 或 least_time last_byte,通常能把 p95 回應時間砍掉 8–15%,而且完全不需要動到應用程式碼。這是極少數「不花錢、可量測變更好」的設定。
四、stream 模組終於支援 proxy_ssl_alpn
stream 模組現在支援 proxy_ssl_alpn,意思是你可以做 TLS 透通並明確協商 ALPN——HTTP/2、HTTP/3 來源伺服器需要,部分嚴格檢查 ALPN token 的現代 gRPC 服務也需要。如果你過去因為邊緣解決不了 ALPN,被迫做「前面 L4、後面 L7」這種彆扭架構,現在多半可以收回到一層 NGINX 解決。
五、build 階段可關掉 sticky 模組
小但實用:--without-stream_sticky_module 變成正式 configure flag。最佳化 NGINX 容器映像的團隊每張 image 可省幾百 KB,更重要的是不會再不小心打開一個自己根本沒在用的功能。
六、那個會悄悄改善你 on-call 品質的 log 等級變更
1.31.1 把一類常見的 SSL handshake error 從 error 降到 info。如果你的 Sentry 或 Loki 是用 NGINX error 等級在 page 工程師,你過去其實一直在燒 on-call 時數處理假警報——客戶端把 App 切到背景、portal 攔截、行動網路切換造成的 TLS handshake 中斷。升級後 error 流會明顯安靜很多。順手把告警門檻重新校準,不要直接搬過去。
七、升級建議
Debian/Ubuntu 用 nginx.org 官方 repo 的同行可直接 apt upgrade。Alpine、Rocky 的同行建議等發行版 repo 跟上,或自己具備重編能力——光 OpenSSL 4.0 一項就值得謹慎。Production 切換之前:先上一台 node、看它的 handshake 錯誤率 30 分鐘、再 roll 其他。tunnel 模組與 ALPN 都向後相容,但 tunnel_pass 是新語法——nginx -t 是你的最後一道防線。
我的觀點
2026 年 NGINX 仍然是預設反向代理——儘管 Envoy 與 Caddy 明顯搶下不少 mindshare——的原因,就是它持續做 1.31.1 這種事:安靜地解決具體營運痛點、向後相容、不要求你重寫架構。tunnel 模組是頭條,但對多數團隊來說,當天就能拿到的勝利是 log 等級調整與切到 least_time。兩個五分鐘改動,換來可量測的 p95 改善與更乾淨的告警噪音。我要的就是這種釋出。
更深一層的訊號是:NGINX 正在為 agentic 流量時代調體質。長壽命雙向通道、嚴格 ALPN、OpenSSL 4.0——這些不是給 HTML 網站用的功能,是給 2026 年下半年會打爆你來源主機的那批 AI agent 艦隊用的。如果你的反向代理現在還照著 2018 年的流量在調,1.31.1 是一份禮貌的提醒:該重調了。
資料來源
- Changes with nginx 1.31.1 — 22 May 2026 (official changelog)
- nginx/nginx releases on GitHub
- NGINX Documentation — Releases
- OpenSSL Release and Advisory Timeline
- What's New in NGINX Open Source — NGINX Community Blog