我可以在 SCM 下的 Windows 上运行 Envoy 吗?
注意
2023 年 8 月 31 日,Envoy 项目由于资源不足而结束了对 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 代理的退出代码。如果参数无效,我们将将其设置为 E_INVALIDARG
。有关更多信息,Envoy 会在 Windows 事件查看器中报告启动故障及其错误消息。