我可以在 Windows 上以 SCM 執行 Envoy 嗎?
注意
由於資源不足,Envoy 專案已於 2023 年 8 月 31 日終止對 Windows 的官方支援。我們將繼續接受與 Windows 建置相關的修補程式。在另行通知之前,Windows 建置將從 Envoy CI 以及 Envoy 發佈和安全流程中排除。
注意
此功能仍處於實驗狀態。
您可以將 Envoy 作為 Windows 服務啟動,該服務在Windows 服務控制管理員下管理。首先,您需要建立服務。假設您在當前目錄中有一個名為 envoy-custom.yaml
的自訂組態。建立服務後,您可以啟動它。
從管理員提示符執行以下命令(請注意,您需要將 C:EnvoyProxy 替換為 envoy.exe 二進位檔案和組態檔案的路徑)
> sc create EnvoyProxy binpath="C:\EnvoyProxy\envoy.exe --config-path C:\EnvoyProxy\envoy-demo.yaml" start=auto depend=Tcpip/Afd
[SC] CreateService SUCCESS
> sc start EnvoyProxy
SERVICE_NAME: envoyproxy
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 3924
FLAGS :
> sc query EnvoyProxy
SERVICE_NAME: envoyproxy
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
...
使用sc.exe 來設定服務啟動和錯誤處理。
提示
sc query envoyproxy
的輸出包含 Envoy Proxy 的結束代碼。如果參數無效,我們會將其設定為 E_INVALIDARG
。如需更多資訊,Envoy 會在 Windows 事件檢視器上回報啟動失敗並顯示錯誤訊息。