nginx反向代理Jenkins遇到的小问题
jenkins
前缀设置
- centos7 jenkins 配置路径:
/etc/sysconfig/jenkins
,编辑原有配置 JENKINS_ARGS
,添加--prefix=(需要添加的前缀)
,例如:JENKINS_ARGS="--prefix=/jenkins"
,此处前缀必须与nginx中配置的对应监听的 location
配置一致,因为ngix做了反向代理,location监听了相应的路径,但是jenkins页面中的静态资源是使用的相对路径,如果不统一添加前缀,jenkins静态资源将无法进入nginx配置的反向代理条件,无法正确请求到资源。
nginx
配置location
- 配置监听的路径,例如:
location /jenkins/
- 设置代理
proxy_pass http://127.0.0.1:8081;
,proxy_pass设置的代理链接根据后方是否有/
表现不一。
- 如果带
/
,当请求http://www.test.com/jenkins/abc
,最终代理到的地址会:http://127.0.0.1:8081/abc
- 如果不带
/
,当请求http://www.test.com/jenkins/abc
,最终代理到的地址会:http://127.0.0.1:8081/jenkins/abc
- 所以为了能正确的给代理url添加jenkins的后缀,不需要添加
/
配置proxy_set_header
proxy_set_header Host $host:$server_port;
$host
是监听的server的名字
$server_port
是监听的servert的端口
- 个别情况下,如果使用的域名已经指定了端口,那么就不需要添加
$server_port
- 如果
proxy_set_header
配置错误,会导致jenkins需要重定向的页面跳转出现路径错误,无法正常重定向