背景
在服务器上部署了一个jenkins,由于其他项目的存在,所以使用的是Nginx做反向代理,但是每次访问jenkins管理界面都会抛出一个报错,看着有点闹心,想把它解决掉:
An error message is displayed in the "Manage Jenkins" page - "It appears that your reverse proxy set up is broken"
出现这个错误以后,我们点击更多信息,进到官网的解释,看以看到有这么一个警告:
Be sure to set the X-Forwarded-Proto header if your reverse proxy is accessed via HTTPS and then Jenkins itself is accessed via HTTP i.e. proxying HTTPS to HTTP.
这句话的大概意思是: 如果你的反向代理使用https访问,并且jenkins使用http访问,是代理https到http,那么就一定要设置X-Forwarded-Proto这个请求头。
解决
所以需要调整Nginx中反向代理的配置:
server {
listen 443;
server_name jenkins.lemonlzy.cn.;
location / {
proxy_pass http://localhost:8001;
proxy_read_timeout 90;
proxy_set_header X-Forwarded-Host $host:$server_port;
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;
proxy_set_header X-Real-IP $remote_addr;
}
}
修改配置后重启Nginx服务即可。
欢迎访问我的个人博客:Lemon - 万事顺遂