Docker部署Jenkins经Nginx反向代理后管理页提示配置损坏求助
解决Jenkins反向代理下「管理Jenkins」页面报错问题
已将Jenkins以Docker容器部署在Nginx反向代理后,通过
example.com/jenkins/访问,除「管理Jenkins」页面出现「It appears that your reverse proxy set up is broken」错误外,其余功能均正常。
用户现有配置
Docker Compose 文件
version: "3.4" services: jenkins: image: jenkins/jenkins:lts container_name: jenkins environment: JENKINS_OPTS: "--prefix=/jenkins" ports: - 9292:8080 - 50000:50000 volumes: - ./data:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock
Nginx 配置片段
location /jenkins/ { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host:$server_port; proxy_set_header X-Forwarded-Server $host:$server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:9292; proxy_redirect http://localhost:9292/ /jenkins/; }
修复方案
问题出在Nginx的proxy_pass和proxy_redirect配置,以及Jenkins反向代理头信息的匹配上,按以下步骤修改:
1. 调整Nginx配置
将proxy_pass路径补全以匹配Jenkins的prefix,同时修正头信息和重定向规则:
location /jenkins/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 补全路径,和Jenkins的--prefix=/jenkins对应 proxy_pass http://localhost:9292/jenkins/; # 让Nginx自动处理重定向路径 proxy_redirect default; }
- 把
proxy_pass从http://localhost:9292改为http://localhost:9292/jenkins/,确保请求路径完整传递给Jenkins - 移除
$server_port(站点使用80/443默认端口时,无需在Host头携带端口) - 用
proxy_redirect default替代手动规则,避免路径匹配错误
2. 确认Jenkins配置
进入Jenkins「管理Jenkins」→「系统配置」,找到「Jenkins Location」:
- 将Jenkins URL设为
https://example.com/jenkins/(使用HTTP协议则替换为http) - 确认反向代理头信息已被正确识别(调整Nginx配置后通常自动生效)
3. 重启服务
- 重启Nginx:
sudo systemctl restart nginx - 重启Jenkins容器:
docker-compose restart jenkins
问题原因
「管理Jenkins」页面会严格校验反向代理请求头与Jenkins自身URL配置是否匹配。原配置中proxy_pass未传递/jenkins路径,导致Jenkins收到的请求为根路径,和其--prefix=/jenkins的设置冲突,触发错误提示。多余的$server_port也会导致Host头不匹配,加剧校验失败。
内容的提问来源于stack exchange,提问作者Noor Muradi
相关产品推荐
相关产品推荐

