Skip to main content

将代理服务器与自托管运行程序结合使用

您可以配置自托管运行器使用代理服务器与 GitHub Enterprise Server 通信。

Note

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

使用环境变量配置代理服务器

如果需要一个自托管运行器来通过代理服务器通信,则自托管运行器应用程序使用在以下环境变量中设置的代理配置:

  • https_proxy:HTTPS 流量的代理 URL。 如果需要,您也可以包括基本验证凭据。 例如:
    • http://proxy.local
    • http://192.168.1.1:8080
    • http://username:password@proxy.local
  • http_proxy:HTTP 流量的代理 URL。 如果需要,您也可以包括基本验证凭据。 例如:
    • http://proxy.local
    • http://192.168.1.1:8080
    • http://username:password@proxy.local
  • no_proxy:不应使用代理的主机的逗号分隔列表。 no_proxy 中只允许使用主机名,不能使用 IP 地址。 例如:
    • example.com
    • example.com,myserver.local:443,example.org

当自托管运行器应用程序启动时,会读取代理环境变量,因此您必须在配置或启动自托管运行器应用程序之前设置环境变量。 如果代理配置发生更改,则必须重启自托管运行程序应用程序。

Note

为了避免问题,无论所用操作系统和 shell 的行为为何,最好将环境变量视为区分大小写。

在 Windows 计算机上,代理环境变量名称不区分大小写。 在 Linux 和 macOS 机器上,建议环境变量全部小写。 如果 Linux 或 macOS 上的环境变量具有小写和大写形式(例如 https_proxyHTTPS_PROXY),自托管运行程序应用程序会使用小写环境变量。

自托管运行器和 GitHub Enterprise Server 通过 HTTP(端口 80)或 HTTPS(端口 443)建立连接。 若要确保通过 HTTPS 进行连接,请为 你的 GitHub Enterprise Server 实例 配置 TLS。 有关详细信息,请参阅“配置 TLS”。

使用 .env 文件设置代理配置

如果设置环境变量不可行,可以在自托管运行器应用程序目录(即运行器软件下载并解包到的目录)中名为 .env 的文件中设置代理配置变量。 例如,如果您想要将运行器应用程序配置为系统帐户下的服务,这可能是必需的。 当运行器应用程序启动时,它会读取 .env 中为代理配置设置的变量。

.env 代理配置示例

https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

设置 Docker 容器的代理配置

如果您在工作流程中使用 Docker 容器操作或服务容器,则除了设置上述环境变量外,可能还需要配置 Docker来使用代理服务器。

有关所需 Docker 配置的信息,请参阅 Docker 文档中的“配置 Docker 以使用代理服务器”。