nginx反向代理Jenkins遇到的小问题

3,883 阅读1分钟

jenkins

前缀设置

  1. centos7 jenkins 配置路径:/etc/sysconfig/jenkins,编辑原有配置 JENKINS_ARGS,添加--prefix=(需要添加的前缀),例如:JENKINS_ARGS="--prefix=/jenkins",此处前缀必须与nginx中配置的对应监听的 location配置一致,因为ngix做了反向代理,location监听了相应的路径,但是jenkins页面中的静态资源是使用的相对路径,如果不统一添加前缀,jenkins静态资源将无法进入nginx配置的反向代理条件,无法正确请求到资源。

nginx

配置location

  1. 配置监听的路径,例如:location /jenkins/
  2. 设置代理proxy_pass http://127.0.0.1:8081;,proxy_pass设置的代理链接根据后方是否有/表现不一。
  3. 如果带/,当请求http://www.test.com/jenkins/abc,最终代理到的地址会:http://127.0.0.1:8081/abc
  4. 如果不带/,当请求http://www.test.com/jenkins/abc,最终代理到的地址会:http://127.0.0.1:8081/jenkins/abc
  5. 所以为了能正确的给代理url添加jenkins的后缀,不需要添加/

配置proxy_set_header

  1. proxy_set_header Host $host:$server_port;
  2. $host是监听的server的名字
  3. $server_port是监听的servert的端口
  4. 个别情况下,如果使用的域名已经指定了端口,那么就不需要添加$server_port
  5. 如果proxy_set_header配置错误,会导致jenkins需要重定向的页面跳转出现路径错误,无法正常重定向