温馨提示×

CentOS系统中Jenkins如何优化网络设置

小樊
36
2025-12-27 12:56:32
栏目: 智能运维

CentOS 上优化 Jenkins 网络设置的实用方案

一 基础网络与端口规划

  • 修改 Jenkins 监听端口:编辑 /etc/sysconfig/jenkins,将 JENKINS_PORT 改为业务空闲端口(如 8090),保存后执行 sudo systemctl restart jenkins
  • 规划访问方式:在内网可直接用 IP:端口 访问;对外建议通过 Nginx/Apache 反向代理 提供 HTTP/HTTPS,便于统一证书、压缩、缓存与访问控制。
  • 防火墙放行:使用 firewalld 放行对应端口(示例为 8080,如更换端口请同步调整)。
  • 静态 IP(可选):在 /etc/sysconfig/network-scripts/ifcfg-<接口名> 中设置 BOOTPROTO=staticIPADDRNETMASKGATEWAYDNS1/DNS2,执行 sudo systemctl restart network 生效。
  • 名称解析:编辑 /etc/resolv.conf 添加可靠 DNS(如 8.8.8.88.8.4.4),确保插件与依赖下载顺畅。

二 反向代理与 HTTPS 配置

  • 建议用 Nginx 终止 TLS 并反向代理到本地 8080/8090,示例要点:
    • 仅暴露 80/443,Jenkins 监听本地回环或内网地址,降低暴露面。
    • 开启 HTTP/2Gzip、合理的 缓存超时;为静态资源设置长缓存。
    • 配置 HSTS、安全的 TLS 协议与套件;设置合适的 client_max_body_size 以适配大上传(如制品、日志)。
    • 反向代理示例(概念):
      • 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; }
  • 如采用 HTTPS,在 Jenkins “系统配置”中正确设置 Jenkins URLhttps:// 开头,避免回调与链接错配。

三 内核网络参数与 TCP 栈优化

  • 编辑 /etc/sysctl.conf,在变更前备份并逐项评估,执行 sudo sysctl -p 生效:
    • 连接与队列:
      • net.core.somaxconn = 65535
      • net.ipv4.tcp_max_syn_backlog = 8192
      • net.ipv4.tcp_max_tw_buckets = 5000
      • net.ipv4.tcp_tw_reuse = 1
      • net.ipv4.tcp_fin_timeout = 30
    • 端口与保活:
      • net.ipv4.ip_local_port_range = 1024 65535
      • net.ipv4.tcp_keepalive_time = 1200
    • 缓冲区与探测:
      • net.ipv4.tcp_rmem = 4096 87380 6291456
      • net.ipv4.tcp_wmem = 4096 65536 6291456
      • net.ipv4.tcp_mtu_probing = 1
  • 文件描述符与进程限制:在 /etc/security/limits.conf 提升 nofile(如 65536 或更高),以支持高并发连接与大量文件操作(Jenkins 与构建工具均受益)。

四 带宽控制与网络隔离

  • 带宽限速:对构建节点或特定网段使用 tc(Traffic Control)进行出口/入口限速,避免构建拉取与制品上传挤占业务带宽。
  • 多网卡与 VLAN:通过 ip 命令创建 VLAN 接口并绑定到对应物理口,实现与管理/业务网段隔离,提升安全与可维护性。
  • 网络别名:为接口配置 多个 IP,用于多租户或多环境隔离(如测试/预发/生产)。
  • 连接监控:使用 ss/netstat 观察 ESTABLISHEDTIME_WAIT、重传与 RTT,结合构建日志定位瓶颈。

五 高可用与扩展建议

  • 代理节点与并行构建:在 “管理 Jenkins → 管理节点” 添加 代理节点,将耗时任务分摊到多机,缩短整体流水线耗时并提升稳定性。
  • 监控与持续优化:安装 Performance Plugin 等监控插件,定期分析 构建时长队列等待网络时延/丢包带宽占用,据此微调 并发构建数代理规模内核/TCP 参数

0