我尝试配置一个nginx反向代理来访问Jenkins实例。我可以打开身份验证页面,但没有CSS,也没有图像。它直接访问时效果很好。
所有工作都好像反向代理没有正确重写html源页面中定义的URL。我错过了什么吗?
这是我的nginx配置:
location /jenkins {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;
proxy_pass http://jenkins:8080/;
}
答案 0 :(得分:6)
我找到了解决方案。 nginx反向代理运行良好,但Jenkins需要一些自定义来使用反向代理。
最终的nginx配置:
location /jenkins/ {
proxy_pass http://jenkins:8080/jenkins/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
和the tutorial配置jenkins后面的nginx反向代理解决了我的问题
答案 1 :(得分:5)
我不知道上述声明是否适用于OP,但我知道更改位置名称行对我来说很有用:
location ^~ /jenkins/ {
proxy_pass http://jenkins:8080/jenkins/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
答案 2 :(得分:0)
如果您将Jenkins与docker一起使用。您可以按如下所示添加撰写文件的环境部分:
environment:
JENKINS_OPTS: "--prefix=/jenkins"
nginx conf文件中的。 proxy_pass必须引用http://IP-ADDRESS:PORT/jenkins/
。如前所述,link作为参考非常有用。