反向代理问题

症状

“管理Jenkins”页面中会显示一条错误消息必威国际有限公司

您的反向代理设置似乎已中断

如果您不通过反向代理访问Jenkins,也会出现此消息:确保在系统配置中配置的Jenkins UR必威国际有限公司L与您用于访问Jenkins的URL匹配。

出身背景

要使反向代理正常工作,它需要重写请求和响应。请求重写包括接收入站HTTP调用,然后向Jenkins发出转发请求(有时修改一些HTTP头,有时不修改)。无法配置请求重写很容易捕获,因为您根本看不到任何页面。必威国际有限公司

但正确的反向代理也包括两种选择之一任何一个

  • 重写响应在响应中有一个“Location”头,在重定向过程中使用必威国际有限公司地点:http://actual.server:8080/jenkins必威国际有限公司/foobar反向代理必须将其重写为地点:http://nice.name/jenkins必威国际有限公司/foobar. 不幸的是,未能正确配置这一点更难捕捉;或

  • 设置标题X主机(也许X端口)根据转发的请求。Jenkins将解析这些头并根据这些头必威国际有限公司生成所有重定向和其他链接。根据您的反向代理,可能更容易设置X主机X端口到原始文件中的主机名和端口主人头分别或它可能更容易只是通过原始主人标题至asX主机并删除X端口#请求的头。您还需要设置X-Proto如果反向代理正在从更改为httpshttp反之亦然。

必威国际有限公司Jenkins具有主动监控功能,以确保正确配置。它使用XmlHttpRequest在Jenkins中请求一个特定的URL(通过相对路径,因此只要请求被正确重写,这将始终通过),然后将用户重定向到Jenkins中的另一个页面(只有在正确配置了响应重写的情况下,这才有效),然后返回200。

此错误消息表示此测试失败-最可能的原因是响应重写配置错误。见配置示例有关配置反向代理的其他提示。

一定要把灯调好X-Proto如果您的反向代理是通过HTTPS访问的,那么Jenkins本身是通过HTTP访问的,即代理HTTPS到HTTP。必威国际有限公司

使用反向代理更改Jenkins的上下文路径充满了危险。有很必威国际有限公司多URL需要正确重写,即使是HTML文件中的URL,也可能会错过javascript、CSS或XML资源中的一些URL。

建议确保Jenkins在反向代理服务于Jenkins的上下文路径上运行。如必威国际有限公司果你坚持这一原则,你的痛苦会最小。

虽然在技术上可以使用重写规则来更改上下文路径,但您应该知道,查找和修复重写规则中的所有内容需要大量工作,而反向代理将花费大部分时间重写Jenkins的响应。更容易将Jenkins更改为在反向代理期望的上下文路径上运行,例如,如果反向代理在https://manchu.example.org/foobar/ 给詹金斯,你就可以用必威国际有限公司java-jar j必威国际有限公司enkins.war——前缀=/foobar让jenkins开必威国际有限公司始使用/福巴作为上下文路径

进一步诊断

要进一步诊断,请尝试使用cURL:

BASE=管理监视器/hudson.diagnosis.reverseProxy设置监视器curl-iL-ehttp://your.reverse.proxy/jenkins/manage \ http://you必威国际有限公司r.reverse.proxy/jenkins/${BASE}/测试

(假设您的Jenkins位于h必威国际有限公司ttp://your.reverse.proxy/jenkins/ -并且对匿名读访问开放)



这个页面有用吗?

请通过此网站提交您对此页面的反馈快速表格.

或者,如果您不想填写快速表格,您可以简单地指出此页面是否有用?


查看现有反馈在这里.