會觸發 Edge Node 閘道器程序重啟的配置變更

列出 OpenResty Edge Admin 控制台中會觸發閘道器節點程序更新(binary upgrade)的配置入口、影響範圍和生效方式。

OpenResty Edge 的絕大多數配置(應用、頁面規則、上游、證書、DNS 記錄、WAF 規則等)都在閘道器程序內熱更新, 釋出後即時生效。只有會改變閘道器節點 nginx.conf 的配置才需要更新閘道器程序。

程序更新期間,舊程序會盡量處理完存量請求,但退出過程受工作程序關閉超時等條件限制, WebSocket、大檔案下載、流式響應等長連線可能中斷,建議安排在業務低峰期。

會觸發程序更新的配置入口

控制台入口涉及的配置生效方式與影響範圍
全域性配置通用頁面右側 WorkerIPv6SSL代理上游客戶端請求檔案緩衝區日誌DNSGzipBrotliZstandard叢集OpenTelemetry其他 各分類下的節點執行引數儲存後需在 全域性配置釋出 中釋出;影響頁面頂部所選分割槽的節點。開啟 自動同步到其他分割槽 時,釋出預設分割槽會同時下發到所有分割槽
閘道器叢集閘道器分割槽 → 編輯分割槽的埠列表分割槽的監聽埠範圍與型別,以及埠的 HTTP/2、代理協議(Proxy Protocol)選項。從應用的分割槽欄位開啟的埠列表是同一份配置儲存後立即下發,無需單獨釋出;影響所有分割槽的節點
全域性配置全域性指標配置OpenResty Edge 閘道器伺服器Prometheus 指標服務的埠和允許訪問的 IP。同一頁面的 Admin 指標配置不觸發儲存後立即下發;影響全部閘道器節點
全域性配置全域性 WAFSyslog 伺服器WAF 攔截日誌的 syslog 輸出配置。同一頁面的 WAF 規則集不觸發儲存後立即下發;影響全部閘道器節點
全域性配置全域性 Lua 模組開啟了 啟動時執行 的模組:新增、刪除、改名或修改程式碼,以及開啟/關閉該選項。未開啟該選項的模組不觸發。該選項自 26.6.1-1 版本引入儲存後由節點週期性檢測觸發,通常在數十秒內完成;影響該分割槽的節點
閘道器叢集 → 選擇叢集 → 編輯節點私有 IPv4Server 名、各協議的 用於監聽的本地 IP 地址用於上游請求的本地 IP 地址Intel QAT 加速工作程序型別工作程序數量工作連線最大開啟檔案數錯誤日誌級別儲存並同步後;僅影響該節點
閘道器叢集 → 編輯叢集叢集分割槽是否為灰度叢集——節點所使用的配置庫集合隨之變化儲存並同步後;影響該叢集的全部節點
閘道器叢集 → 選擇叢集 → 編輯節點 → 是灰度節點單個節點切換灰度身份,所使用的配置庫集合隨之變化儲存並同步後;僅影響該節點

儲存分割槽埠列表或全域性指標配置時,會重新生成所有分割槽的執行配置。因此當某個分割槽還有未釋出的 通用 配置時,儲存會失敗並提示先發布該分割槽的變更。

以下配置雖然位於 全域性配置通用 頁面,但儲存到獨立的介面,不會進入 nginx.conf,因此不觸發程序更新: 請求 ID嚴格遵守健康檢查狀態啟用 OpenResty Edge 錯誤頁同步閘道器伺服器狀態代理遞迴啟用清理策略

小結

是否真正觸發程序更新,取決於最終生成的 nginx.conf 內容是否發生變化:內容不變時不會觸發, 因此把某項配置改動後又改回原值再發布,不會產生程序更新。

在非容器部署中,可以在閘道器節點的錯誤日誌(預設為 /usr/local/oredge-node/logs/error.log)中確認更新完成:

successfully binary upgraded OpenResty

容器部署使用 reload,不會輸出這條日誌。請結合本次變更的時間和前後日誌判斷,不要僅憑歷史日誌中的一次成功記錄下結論。