描述:使用nginx反向代理jenkins.、nginx反向代理 docker安装的jenkins.
方法 :
一、nginx反向代理docker安装的jenkins
1.使用 vim /etc/nginx/nginx.conf进入nginx 的配置页面。
在默认的server中添加;注:配置静态资源仅供参考,没有也可以正常使用
location ^~ /jenkins/ {
68 proxy_pass http://localhost:8080/jenkins/;
69 proxy_read_timeout 10;
70
71 proxy_set_header Host $http_host;
72 proxy_set_header X-Real-IP $remote_addr;
73 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
74 }
75
76 # 配置访问Jenkins静态资源
77 #location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css|svg)$ {
78 # proxy_pass http://localhost:8080;
79 # expires 12h;
80 #}
2. 需要配置 docker 启动Jenkins的启动参数 ,其中 -e 后的两个启动参数是反向代理的关建
docker run -u root -d -p 8080:8080 -p 50000:50000 \
-v /mnt/jenkins/jenkins_home:/var/jenkins_home \
-v /mnt/jenkins/sysconfig:/etc/sysconfig \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/local/apache-maven-3.6.3:/usr/local/maven \
-e JENKINS_OPTS="--prefix=/jenkins" \
-e JENKINS_ARGS="--prefix=/jenkins" \
--name jenkins-dev --restart=always jenkinsci/blueocean
3.如果docker 启动时没有 添加 --prefix=/jenkins 的配置 也可以修改已经启动容器的配置文件
方法如下:
- 1.关闭docker
> service stop docker
> //或者
> systemctl stop docker
- 2.找到容器所在位置 /var/lib/docker/containers/ 默认在此目录下 ,进入对应jenkins容器目录打开config.v2.json 配置文件
- 3. 在 Env 后面 按图中添加 "JENKINS_OPTS=--prefix=/jenkins","JENKINS_ARGS=--prefix=/jenkins"
- 然后重启docker 即可 systemctl start docker
注意:没有停止docker,单纯修改容器配置文件重启容器不起作用
二、centos7 jenkins 配置路径:/etc/sysconfig/jenkins
编辑原有配置 JENKINS_ARGS
,添加--prefix=(需要添加的前缀)
,例如:JENKINS_ARGS="--prefix=/jenkins"
,此处前缀必须与nginx中配置的对应监听的 location
配置一致,因为ngix做了反向代理,location监听了相应的路径,但是jenkins页面中的静态资源是使用的相对路径,如果不统一添加前缀,jenkins静态资源将无法进入nginx配置的反向代理条件,无法正确请求到资源。