У меня есть Jenkins и Apache httpd с обратным установленным прокси. Они установлены на том же ПК.
Я могу получить доступ к Jenkins непосредственно, и это в порядке. Например, следующая ссылка хорошо работает: http://127.0.0.1:8080/jenkins/manage
Другие страницы выглядят хорошо также, если я пытаюсь получить доступ к ним непосредственно через Jenkins.
Я могу также получить доступ к Jenkins через Apache через SSL: https://127.0.0.1/jenkins/manage
. Это прекрасно.
Но когда я нажимаю «Manage Plugins» на этой странице, я перенаправляюсь к следующему URL http://127.0.0.1/jenkins/pluginManager/
который уже является простым HTTP. И я получаю “Не найденный” ошибочная страница.
Подобная ошибка получена, когда я нажимаю "Save" на странице конфигурации https://127.0.0.1/jenkins/configure
под Apache SSL. Я также перенаправил к плоскости HTTP http://127.0.0.1/jenkins/
.
Вероятно, такой переключатель от SSL до плоскости, HTTP происходит для POST, запрашивает только, но не на 100% уверен.
Во время тестирования я выключил безопасность согласно https://wiki.jenkins-ci.org/display/JENKINS/Disable+security
Конфигурационные директивы Apache, связанные с Jenkins, следуют:
Listen 443
ProxyPass /jenkins http://127.0.0.1:8080/jenkins nocanon
ProxyPassReverse /jenkins http://127.0.0.1:8080/jenkins
ProxyPreserveHost On
ProxyRequests Off
<Proxy http://127.0.0.1:8080/jenkins*>
SSLRequireSSL
RequestHeader set X_FORWARDED_PROTO 'https'
Order deny,allow
Allow from all
</Proxy>
Я использую Apache apache_2.2.14-win32-x86-openssl-0.9.8k.msi и Jenkins ver. 1.580.1.
Вероятно, я missconfigurated что-то, но я не могу понять, где найти ошибку. Что может быть неправильным с моей конфигурацией?
Сообщите мне, пропустил ли я существенные детали здесь, таким образом, я могу добавить их здесь.
Заранее спасибо.
Исправлена директива Apache.
Неправильная директива:
RequestHeader set X_FORWARDED_PROTO 'https'
Правильная директива:
RequestHeader set X-FORWARDED-PROTO 'https'
Первоначально я взял её из http://www.redmine.org/projects/redmine/wiki/FAQ#Why-does-Redmine-use-http-links-when-I-want-it-to-use-https-links-in-Apache-SSL, а затем скопировал в конфигурационный файл Apache.
Я не изменил страницу redmine, так как она работает с подчёркиваниями как противоположность тире, используемому в List of HTTP header fields
Следующая страница помогла мне найти проблему: https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache