首页主机资讯如何优化CentOS Jenkins的网络配置

如何优化CentOS Jenkins的网络配置

时间2026-01-19 17:24:04发布访客分类主机资讯浏览216
导读:CentOS 上优化 Jenkins 网络的可执行方案 一 基础连通性与防火墙 校验网络与 DNS:确保服务器可访问外网,必要时在 /etc/resolv.conf 添加可靠 DNS,例如 nameserver 8.8.8.8、names...

CentOS 上优化 Jenkins 网络的可执行方案

一 基础连通性与防火墙

  • 校验网络与 DNS:确保服务器可访问外网,必要时在 /etc/resolv.conf 添加可靠 DNS,例如 nameserver 8.8.8.8nameserver 8.8.4.4
  • 防火墙放行:启用 firewalld 并仅开放必要端口,避免直接长期关闭防火墙。
    • 放行 Web 与 Agent 端口:
      • sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
      • sudo firewall-cmd --zone=public --add-port=50000/tcp --permanent
      • sudo firewall-cmd --reload
  • 端口规划:如 8080 被占用,可在 /etc/sysconfig/jenkins 中修改 JENKINS_PORT=8090,随后重启服务。
  • 变更生效:修改端口或网络参数后执行:sudo systemctl restart jenkins。

二 反向代理与 HTTPS 终结

  • 使用 Nginx 提供域名访问与 HTTPS 终结,隐藏后端端口并便于扩展。
  • 示例 Nginx 配置片段(/etc/nginx/conf.d/jenkins.conf):
    • server { listen 80; server_name jenkins.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host:$server_port; 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_read_timeout 90; proxy_http_version 1.1; proxy_request_buffering off; } }
  • 启用 HTTPS:可使用 Let’s Encrypt 获取证书,或在测试环境用自签证书;证书就绪后更新 Nginx 的 listen 443 ssl 与证书路径,并重启 Nginx。
  • 如不使用 Nginx,也可在 systemd 环境为 Jenkins 直接启用 HTTPS(示例思路):创建 /etc/systemd/system/jenkins.service.d/override.conf,设置环境变量如 JENKINS_HTTPS_PORT=8443JENKINS_HTTPS_KEYSTOREJENKINS_HTTPS_KEYSTORE_PASSWORD,执行 systemctl daemon-reload 与 restart。

三 系统内核与文件描述符优化

  • 提升 TCP/IP 栈与网络缓冲区,增强高并发下载与 Agent 通信稳定性:
    • 编辑 /etc/sysctl.conf,示例参数:
      • net.core.somaxconn = 65535
      • net.ipv4.tcp_syncookies = 1
      • net.ipv4.tcp_tw_reuse = 1
      • net.ipv4.tcp_fin_timeout = 30
      • net.ipv4.tcp_keepalive_time = 1200
      • net.ipv4.ip_local_port_range = 1024 65535
      • net.ipv4.tcp_max_syn_backlog = 8192
      • net.ipv4.tcp_max_tw_buckets = 5000
      • net.ipv4.tcp_fastopen = 3
      • net.ipv4.tcp_rmem = 4096 87380 6291456
      • net.ipv4.tcp_wmem = 4096 65536 6291456
      • net.ipv4.tcp_mtu_probing = 1
    • 应用:sudo sysctl -p
  • 提升文件描述符限制,避免大量并发连接或插件下载失败:
    • 编辑 /etc/security/limits.conf,为运行 Jenkins 的用户(常见为 jenkins)增加:
      • jenkins soft nofile 65536
      • jenkins hard nofile 65536
    • 注意:如使用 systemd,还需在 /etc/systemd/system/jenkins.service.d/limits.conf 中设置 LimitNOFILE=65536 并执行 daemon-reload 与 restart。

四 代理与上游网络环境

  • 企业内网需通过代理访问外网时,为 Jenkins JVM 指定代理参数:
    • 编辑 /etc/sysconfig/jenkins,在 JENKINS_JAVA_OPTIONS 中添加:
      • -Dhttp.proxyHost=172.16.16.16 -Dhttp.proxyPort=9999
      • -Dhttps.proxyHost=172.16.16.16 -Dhttps.proxyPort=9999
    • 重启 Jenkins 生效。
  • 如需限制或保障带宽,可在出口使用 tc 做流量整形(仅在确有拥塞或合规需求时启用)。

五 Docker 部署的专项优化

  • 端口映射:同时映射 8080(Web)与 50000(Agent 通信),缺一不可,否则新增 Agent 会连接超时。
    • docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk21
  • 端口冲突处理:
    • 方案 A:修改宿主机端口映射(如 8081:808050001:50000
    • 方案 B:自定义容器端口,设置环境变量 JENKINS_SLAVE_AGENT_PORT=50001 并映射对应宿主机端口
  • DNS 问题排查:容器无法解析域名(如 updates.jenkins.io)时,启动容器添加 –dns 114.114.114.114 --dns 8.8.8.8;或在 /etc/docker/daemon.json 配置全局 DNS 并重启 Docker。
  • 网络模式选择:单机优先 bridge;极致性能可选 host(注意端口冲突);跨主机 overlay;需要独立 IP 用 macvlan

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


若转载请注明出处: 如何优化CentOS Jenkins的网络配置
本文地址: https://pptw.com/jishu/785994.html
如何在centos上实现jenkins的高可用部署 centos jenkins部署的常见问题有哪些

游客 回复需填写必要信息