You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将外部URL添加至代理以解决GitLab流水线测试卡顿问题

GitLab流水线访问外部URL卡顿的代理配置方案

针对你遇到的本地测试正常、GitLab流水线调用外部URL卡顿的问题,确实可以通过配置代理让流水线正常访问目标服务,主要有几种配置方式,按需选择:

1. 在.gitlab-ci.yml中单独配置job代理

如果只有特定测试job需要访问这个外部URL,直接在对应的job里添加代理环境变量即可,无需全局改动:

test_external_api:
  script:
    - # 这里放你的测试执行命令,比如pytest、npm run test等
  variables:
    HTTP_PROXY: "http://你的代理服务器地址:端口"
    HTTPS_PROXY: "http://你的代理服务器地址:端口"
    NO_PROXY: "localhost,127.0.0.1,gitlab.com" # 排除不需要走代理的地址,比如GitLab自身服务

注意:HTTPS_PROXY的地址即使是http协议也没问题,代理会处理HTTPS请求的转发逻辑。

2. 全局配置GitLab Runner代理

如果所有流水线job都需要走代理,或者不想在每个job里重复写配置,可以修改GitLab Runner的配置文件(默认路径是/etc/gitlab-runner/config.toml):

[[runners]]
  name = "你的Runner名称"
  url = "https://gitlab.com/" # 你的GitLab实例地址
  token = "你的Runner令牌"
  executor = "shell" # 或者你用的其他executor比如docker
  environment = ["HTTP_PROXY=http://你的代理地址:端口", "HTTPS_PROXY=http://你的代理地址:端口", "NO_PROXY=localhost,127.0.0.1,gitlab.com"]

修改完成后重启Runner服务生效:

sudo gitlab-runner restart

3. 自托管GitLab实例全局代理(仅适用于自己搭建的GitLab)

如果是你自己部署的GitLab服务器,想要让整个系统(包括流水线)默认走代理,修改GitLab主配置文件/etc/gitlab/gitlab.rb:

gitlab_rails['env'] = {
  "HTTP_PROXY" => "http://你的代理地址:端口",
  "HTTPS_PROXY" => "http://你的代理地址:端口",
  "NO_PROXY" => "localhost,127.0.0.1,gitlab.example.com" # 替换成你的GitLab域名
}

执行以下命令让配置生效:

sudo gitlab-ctl reconfigure

额外注意事项

  • 先在Runner所在机器测试代理连通性:curl -x http://你的代理地址:端口 https://api.us.cajama.com/v3.6,确保代理能正常访问目标URL
  • 如果代理需要账号密码,格式为http://用户名:密码@代理地址:端口
  • NO_PROXY列表要包含GitLab自身的地址,避免出现代理循环导致流水线无法连接GitLab的情况

内容的提问来源于stack exchange,提问作者BruceyBandit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:20:09