首页主机资讯Ubuntu Jenkins如何配置代理服务器

Ubuntu Jenkins如何配置代理服务器

时间2025-12-18 21:06:04发布访客分类主机资讯浏览345
导读: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 测试插件站点连通性。
  • 备选方案(系统级代理)
    • 若 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
  • 验证
    • 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
  • 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_passproxy_redirect 是否书写正确(尤其避免多余的尾部斜杠)。

三 将 Ubuntu 作为 Jenkins 代理节点 Agent

  • 准备
    • Ubuntu 代理节点安装 OpenJDK 11/17sudo 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 executorsRemote root directory(如 /var/jenkins)、Labels(如 ubuntu-agent
      • 启动方式常用两种:
        • Launch agent by connecting it to the master(JNLP/WebSocket):在节点页面获取 SecretJNLP 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:填写 HostCredentials(SSH 私钥或用户名/密码),Jenkins 通过 SSH 启动代理进程。
  • 验证
    • 节点列表中状态变为 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 → ProxyHTTP/HTTPS ProxyNo Proxy;如使用系统级代理,确认 /etc/default/jenkinsJAVA_OPTS 已生效并重启 Jenkins。
  • 节点无法上线
    • JNLP 方式:确认 SecretJNLP URL 正确、代理机可访问主节点、Java 已安装、工作目录可写。
    • SSH 方式:确认 SSH 端口、凭据、用户权限与目录权限正确;首次连接注意 known_hosts 验证策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Jenkins如何配置代理服务器
本文地址: https://pptw.com/jishu/775494.html
虚拟机ubuntu如何解决蓝屏问题 Debian Tomcat日志如何进行可视化展示

游客 回复需填写必要信息