Jenkins под Apache httpd иногда переключает от SSL до плоскости HTTP

У меня есть 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 что-то, но я не могу понять, где найти ошибку. Что может быть неправильным с моей конфигурацией?

Сообщите мне, пропустил ли я существенные детали здесь, таким образом, я могу добавить их здесь.
Заранее спасибо.

0
задан 11 December 2014 в 01:36
1 ответ

Исправлена директива 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

1
ответ дан 4 December 2019 в 17:06

Теги

Похожие вопросы