我有一个运行在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我试着给ProxyPass和ProxyPassReverse
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