ProxyPass不要设置响应头

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

我在浏览器中提供了http://123.45.67.89/jenkins ,期望Jenkins被redirect到http://123.45.67.89/jenkins/login页面,但是我被redirect到了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重写响应头,以便当浏览器再次发送redirect的请求时,它将是http://127.0.0.1:8090/jenkins/login

不知道我的理解是正确的,还是有我缺less的东西?

也尝试添加:

 ProxyPassReverse /jenkins http://123.45.67.89/ 

可能在ProxyPass上,您正在维护原始的主机头( ProxyPreserveHost On ),如果是的话,这个ProxyPassReverse可能会为您做诡计。

编辑:

我已经检查过我的迷你实验室,关键是jenkins没有做redirect,但它给你这个HTML

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

我解决了这个问题,用开关--prefix=/jenkins启动--prefix=/jenkins