温馨提示×

Debian Jenkins如何配代理

小樊
42
2026-10-07 23:14:21
栏目: 智能运维

在 Debian 上运行的 Jenkins 配置代理,常见有 3 种场景。下面按使用频率从高到低说明。


一、Jenkins 通过 HTTP 代理访问外网(最常用)

适用于:

  • Jenkins 本身无法直连互联网
  • 插件下载、更新失败
  • 构建时需要访问外部仓库(如 Maven / npm / Docker Hub)

1️⃣ 通过 Web 界面配置

Manage Jenkins → Plugins / System

  1. 打开
    Manage Jenkins → System
    
  2. 找到 HTTP Proxy Configuration
  3. 填写:
    • Proxy Host:proxy.example.com
    • Port:8080
    • 如有账号:
      • Username
      • Password
  4. 排除地址(可选):
    localhost,127.0.0.1,.example.com
    
  5. Save

2️⃣ 直接修改配置文件(推荐服务器环境)

编辑:

sudo nano /etc/default/jenkins

添加 JVM 参数:

JAVA_ARGS="-Dhttp.proxyHost=proxy.example.com \
-Dhttp.proxyPort=8080 \
-Dhttps.proxyHost=proxy.example.com \
-Dhttps.proxyPort=8080 \
-Dhttp.nonProxyHosts=localhost|127.0.0.1|.example.com"

重启 Jenkins:

sudo systemctl restart jenkins

✅ 适合 Debian + systemd 环境


二、Jenkins Agent(节点)使用代理

适用于:

  • Slave / Agent 在受限网络
  • 构建机器需要代理

方式 1:Pipeline 中临时使用

pipeline {
    agent any
    environment {
        HTTP_PROXY = "http://proxy.example.com:8080"
        HTTPS_PROXY = "http://proxy.example.com:8080"
        NO_PROXY = "localhost,127.0.0.1"
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
            }
        }
    }
}

方式 2:Agent 环境变量

在:

Manage Jenkins → Nodes

编辑节点 → Node Properties → Environment variables


三、Jenkins 作为反向代理后的服务(Nginx 示例)

适用于:

  • 使用域名访问 Jenkins
  • HTTPS 访问

Nginx 配置示例

server {
    listen 80;
    server_name jenkins.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Jenkins 设置:

Manage Jenkins → System → Jenkins URL

改为:

https://jenkins.example.com/

四、常见问题排查

✅ 插件无法下载
→ 检查 HTTP Proxy 是否配置正确

✅ Agent 连不上 Master
→ 检查 NO_PROXY / 防火墙

✅ Docker 构建失败
→ Docker daemon 也要配代理:

sudo mkdir -p /etc/systemd/system/docker.service.d
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080"

如果你能说明是 哪种代理(出网 / Agent / 反向代理),我可以给你更精确的配置。

0 踩