Ubuntu Jenkins如何配置代理服务器
导读:Ubuntu 上 Jenkins 代理配置全指南 在 Ubuntu 环境中,Jenkins 的“代理”常见有三类场景:一是为 Jenkins 本身设置HTTP/HTTPS 出站代理以下载插件与依赖;二是用 Nginx 做反向代理与 SSL...
Ubuntu 上 Jenkins 代理配置全指南
在 Ubuntu 环境中,Jenkins 的“代理”常见有三类场景:一是为 Jenkins 本身设置HTTP/HTTPS 出站代理以下载插件与依赖;二是用 Nginx 做反向代理与 SSL 终止;三是将 **Ubuntu 机器作为 Jenkins 的代理节点(Agent)**来扩展构建能力。下面分别给出可操作步骤与要点。
一 为 Jenkins 设置 HTTP 出站代理
- 管理界面配置(推荐)
- 进入 Manage Jenkins → System,在 Proxy 部分填写:
- HTTP Proxy:例如 http://proxy.company.com:8080
- HTTPS Proxy:例如 http://proxy.company.com:8080(很多企业对 HTTPS 也走同一代理)
- No Proxy:如 localhost,127.0.0.1,.internal,example.com
- 保存后重启 Jenkins(如使用 systemd:sudo systemctl restart jenkins),再在 Manage Plugins 测试插件站点连通性。
- 进入 Manage Jenkins → System,在 Proxy 部分填写:
- 备选方案(系统级代理)
- 若 Jenkins 以服务方式运行,可在其环境文件设置代理,编辑 /etc/default/jenkins,在 JAVA_OPTS 中加入(示例):
- -Dhttp.proxyHost=proxy.company.com -Dhttp.proxyPort=8080
- -Dhttps.proxyHost=proxy.company.com -Dhttps.proxyPort=8080
- -Dhttp.nonProxyHosts=localhost|127.0.0.1|*.internal
- 保存并重启:sudo systemctl restart jenkins。
- 若 Jenkins 以服务方式运行,可在其环境文件设置代理,编辑 /etc/default/jenkins,在 JAVA_OPTS 中加入(示例):
- 验证
- 在 Manage Jenkins → System Information 检查 http.proxyHost/https.proxyHost 等系统属性是否生效;在插件中心执行更新测试。
二 使用 Nginx 作为反向代理并启用 SSL
- 安装与证书
- 安装 Nginx:sudo apt-get install nginx
- 使用 Let’s Encrypt/Certbot 获取证书(示例域名:jenkins.example.com):sudo certbot --nginx -d jenkins.example.com
- Nginx 配置示例(/etc/nginx/sites-available/jenkins)
- 将 HTTP 重定向到 HTTPS,并反向代理到本机 8080:
server { listen 80; server_name jenkins.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name jenkins.example.com; ssl_certificate /etc/letsencrypt/live/jenkins.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/jenkins.example.com/privkey.pem; access_log /var/log/nginx/jenkins.access.log; error_log /var/log/nginx/jenkins.error.log; location / { 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; proxy_pass http://127.0.0.1:8080; proxy_read_timeout 90; proxy_redirect http://localhost:8080 https://jenkins.example.com; } } - 启用站点并测试:sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/ & & sudo nginx -t & & sudo systemctl reload nginx
- 将 HTTP 重定向到 HTTPS,并反向代理到本机 8080:
- Jenkins 侧配合
- 建议让 Jenkins 仅监听本地,编辑 /etc/default/jenkins,设置 JENKINS_ARGS=“–httpListenAddress=127.0.0.1 --httpPort=8080”,然后重启 Jenkins。
- 访问 https://jenkins.example.com 验证;如出现 “Reverse proxy set up is broken”,优先检查 proxy_pass 与 proxy_redirect 是否书写正确(尤其避免多余的尾部斜杠)。
三 将 Ubuntu 作为 Jenkins 代理节点 Agent
- 准备
- 在 Ubuntu 代理节点安装 OpenJDK 11/17:sudo apt-get update & & sudo apt-get install openjdk-11-jre(或 openjdk-17-jre)
- 确保 SSH 可用(便于主节点连接;如使用 JNLP 方式则无需 SSH 从主到从的连接)
- 在 Jenkins 主节点添加节点
- 进入 Manage Jenkins → Manage Nodes and Clouds → New Node,输入节点名,选择 Permanent Agent,配置:
- # of executors、Remote root directory(如 /var/jenkins)、Labels(如 ubuntu-agent)
- 启动方式常用两种:
- Launch agent by connecting it to the master(JNLP/WebSocket):在节点页面获取 Secret 与 JNLP URL,在代理机上执行:
wget http://< JENKINS_URL> /jnlpJars/agent.jar java -jar agent.jar -jnlpUrl http://< JENKINS_URL> /computer/< NODE_NAME> /jenkins-agent.jnlp -secret < SECRET> -workDir "/var/jenkins" - Launch agents via SSH:填写 Host、Credentials(SSH 私钥或用户名/密码),Jenkins 通过 SSH 启动代理进程。
- Launch agent by connecting it to the master(JNLP/WebSocket):在节点页面获取 Secret 与 JNLP URL,在代理机上执行:
- 进入 Manage Jenkins → Manage Nodes and Clouds → New Node,输入节点名,选择 Permanent Agent,配置:
- 验证
- 节点列表中状态变为 Online,在节点页查看系统信息、执行简单任务测试。
四 常见问题与排查
- 反向代理错误提示 “Reverse proxy set up is broken”
- 核对 Nginx 的 proxy_pass http://127.0.0.1:8080; 与 proxy_redirect 是否匹配域名与端口;避免 proxy_pass 多余的尾部斜杠;确保 Jenkins 仅监听 127.0.0.1:8080 且证书与域名一致。
- 插件更新或构建下载失败
- 检查 Manage Jenkins → System → Proxy 的 HTTP/HTTPS Proxy 与 No Proxy;如使用系统级代理,确认 /etc/default/jenkins 中 JAVA_OPTS 已生效并重启 Jenkins。
- 节点无法上线
- JNLP 方式:确认 Secret 与 JNLP URL 正确、代理机可访问主节点、Java 已安装、工作目录可写。
- SSH 方式:确认 SSH 端口、凭据、用户权限与目录权限正确;首次连接注意 known_hosts 验证策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Jenkins如何配置代理服务器
本文地址: https://pptw.com/jishu/775494.html
