У меня есть сервер apache, который находится между сервером Jenkins, работающим на 127.0.0.1:8090
и клиентский браузер.
я даю http://123.45.67.89/jenkins
в браузере и ожидая, что Дженкинс будет перенаправлен на http://123.45.67.89/jenkins/login
страницу, но вместо этого меня перенаправляют на http://123.45.67.89/login
страница.
В апаче 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
так что когда браузер снова отправит перенаправленный запрос, он будет http://127.0.0.1:8090/jenkins/login
Не уверен, что я правильно понимаю или что-то мне не хватает?
Попробуйте также добавить:
ProxyPassReverse /jenkins http://123.45.67.89/
Вероятно, на ProxyPass вы сохраняете исходный заголовок хоста (ProxyPreserveHost On
), если это так, то ProxyPassReverse, вероятно, поможет вам.
РЕДАКТИРОВАТЬ:
Я проверил свою мини-лабораторию, и дело в том, что Дженкинс не выполняет перенаправление, но дает вам этот html
<meta http-equiv='refresh' content='1;url=/login?from=%2F'/>
Я решил это, запустив Дженкинса с переключателем --prefix=/jenkins