Jenkins配置国内插件下载代理

前言

  • 为什么要使用国内的插件下载地址?
    • jenkins_plugins下载的RS机器在海外,国内用户下载插件速度慢,且加速需要***,成本比较高。下图是现有情况的展示图:

CICD(四) Jenkins配置国内插件下载代理_第1张图片

- 百度找到的加速下载插件的方式无非是离线下载上传或者修改`升级站点`的错误方法(这些方法100%不奏效,大家要是可以的话算我输)

CICD(四) Jenkins配置国内插件下载代理_第2张图片

正确的加速代理设置方法

  • 原理介绍:
    • 利用nginx的方向代理和rewrite规则,配合hosts劫持方法,简单实现用国内清华镜像插件站点代替官方的下载
      CICD(四) Jenkins配置国内插件下载代理_第3张图片

配置方法

  • 要点:

    1. 如果你的jenkins在内网能NAT上网的话,且所在机器的80端口没有被占用的情况下,直接在jenkins安装个nginx
    2. 如果你的jenkins不能访问外网,或者80端口被非nginx服务占用,那就另外找个能上网的机器或者部署了nginx的服务器
    3. 修改nginx配置
    4. 修改jenkins服务器的hosts配置
  • 实操

    • 我的nginx和jenkins服务器是分开的
1. 配置nginx下载源

#] cat >  /etc/yum.repos.d/nginx.repo << EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

2.  安装nginx

#] yum -y install nginx

3. 代理配置

#] vim  /etc/nginx/conf.d/jenkins_proxy.conf
server {
    listen 80;
    server_name updates.jenkins-ci.org;
    access_log /data/logs/nginx/jenkins_proxy.log;
    location /download/plugins {
        proxy_set_header Host mirrors.tuna.tsinghua.edu.cn;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        rewrite /download/plugins(.*)   /jenkins/plugins/$1 break;
        proxy_pass http://mirrors.tuna.tsinghua.edu.cn;
    }
}
#] nginx && nginx -t && nginx -s reload

4. jenkins hosts配置

#] vim /etc/hosts

10.18.99.39  updates.jenkins-ci.org

5. 插件下载测试

方案出处

  • 马哥教育张世杰老师的cicd课程