ProxyPassReverse 未设置响应标头

ProxyPassReverse 未设置响应标头

127.0.0.1:8090我在 Jenkins 服务器和客户端浏览器之间运行一个 apache 服务器。

我正在浏览器中给出http://123.45.67.89/jenkins并期望 Jenkins 被重定向到http://123.45.67.89/jenkins/login页面,但是相反,我被重定向到http://123.45.67.89/login页面。

在 apache 中httpd.conf我尝试给出ProxyPassProxyPassReverse

LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_module modules/mod_proxy.so
ProxyPass /jenkins http://127.0.0.1:8090/
ProxyPassReverse /jenkins http://127.0.0.1:8090/

据我了解,ProxyPassReserve它将重写响应标头,/jenkins/login以便当浏览器再次发送重定向请求时,它将http://127.0.0.1:8090/jenkins/login

不确定我的理解是否正确或者我是否遗漏了什么?

答案1

尝试添加:

ProxyPassReverse /jenkins http://123.45.67.89/

可能在 ProxyPass 上您正在维护原始主机标头(ProxyPreserveHost On),如果是这样,这个 ProxyPassReverse 可能就会为您解决问题。

编辑:

我检查了我的迷你实验室,重点是詹金斯没有进行重定向,但它给了你这个 html

<meta http-equiv='refresh' content='1;url=/login?from=%2F'/>

我解决了这个问题,启动詹金斯与开关--prefix=/jenkins

相关内容