會觸發 Edge Node 閘道器程序重啟的配置變更
列出 OpenResty Edge Admin 控制台中會觸發閘道器節點程序更新(binary upgrade)的配置入口、影響範圍和生效方式。
OpenResty Edge 的絕大多數配置(應用、頁面規則、上游、證書、DNS 記錄、WAF 規則等)都在閘道器程序內熱更新,
釋出後即時生效。只有會改變閘道器節點 nginx.conf 的配置才需要更新閘道器程序。
程序更新期間,舊程序會盡量處理完存量請求,但退出過程受工作程序關閉超時等條件限制, WebSocket、大檔案下載、流式響應等長連線可能中斷,建議安排在業務低峰期。
會觸發程序更新的配置入口
| 控制台入口 | 涉及的配置 | 生效方式與影響範圍 |
|---|---|---|
全域性配置 → 通用 | 頁面右側 Worker、IPv6、SSL、代理、上游、客戶端請求、檔案緩衝區、日誌、DNS、Gzip、Brotli、Zstandard、叢集、OpenTelemetry、其他 各分類下的節點執行引數 | 儲存後需在 全域性配置 → 釋出 中釋出;影響頁面頂部所選分割槽的節點。開啟 自動同步到其他分割槽 時,釋出預設分割槽會同時下發到所有分割槽 |
閘道器叢集 → 閘道器分割槽 → 編輯分割槽的埠列表 | 分割槽的監聽埠範圍與型別,以及埠的 HTTP/2、代理協議(Proxy Protocol)選項。從應用的分割槽欄位開啟的埠列表是同一份配置 | 儲存後立即下發,無需單獨釋出;影響所有分割槽的節點 |
全域性配置 → 全域性指標配置 → OpenResty Edge 閘道器伺服器 | Prometheus 指標服務的埠和允許訪問的 IP。同一頁面的 Admin 指標配置不觸發 | 儲存後立即下發;影響全部閘道器節點 |
全域性配置 → 全域性 WAF → Syslog 伺服器 | WAF 攔截日誌的 syslog 輸出配置。同一頁面的 WAF 規則集不觸發 | 儲存後立即下發;影響全部閘道器節點 |
全域性配置 → 全域性 Lua 模組 | 開啟了 啟動時執行 的模組:新增、刪除、改名或修改程式碼,以及開啟/關閉該選項。未開啟該選項的模組不觸發。該選項自 26.6.1-1 版本引入 | 儲存後由節點週期性檢測觸發,通常在數十秒內完成;影響該分割槽的節點 |
閘道器叢集 → 選擇叢集 → 編輯節點 | 私有 IPv4、Server 名、各協議的 用於監聽的本地 IP 地址 與 用於上游請求的本地 IP 地址、Intel QAT 加速、工作程序型別、工作程序數量、工作連線、最大開啟檔案數、錯誤日誌級別 | 儲存並同步後;僅影響該節點 |
閘道器叢集 → 編輯叢集 | 叢集分割槽、是否為灰度叢集——節點所使用的配置庫集合隨之變化 | 儲存並同步後;影響該叢集的全部節點 |
閘道器叢集 → 選擇叢集 → 編輯節點 → 是灰度節點 | 單個節點切換灰度身份,所使用的配置庫集合隨之變化 | 儲存並同步後;僅影響該節點 |
儲存分割槽埠列表或全域性指標配置時,會重新生成所有分割槽的執行配置。因此當某個分割槽還有未釋出的
通用 配置時,儲存會失敗並提示先發布該分割槽的變更。
以下配置雖然位於 全域性配置 → 通用 頁面,但儲存到獨立的介面,不會進入 nginx.conf,因此不觸發程序更新:
請求 ID、嚴格遵守健康檢查狀態、啟用 OpenResty Edge 錯誤頁、同步閘道器伺服器狀態、代理遞迴、啟用清理策略。
小結
是否真正觸發程序更新,取決於最終生成的 nginx.conf 內容是否發生變化:內容不變時不會觸發,
因此把某項配置改動後又改回原值再發布,不會產生程序更新。
在非容器部署中,可以在閘道器節點的錯誤日誌(預設為 /usr/local/oredge-node/logs/error.log)中確認更新完成:
successfully binary upgraded OpenResty
容器部署使用 reload,不會輸出這條日誌。請結合本次變更的時間和前後日誌判斷,不要僅憑歷史日誌中的一次成功記錄下結論。