Я запускаю два сервіси за сервером Apache: Jenkins (Порт 8080) і SonarQube (Порт 9000).
Мій конфігурація apache виглядає так:
<VirtualHost *:80>
ServerName server
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName server.domain.com
Redirect permanent / https://server.domain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName server.domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
ProxyPass /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
ProxyPassReverse /jenkins http://server.domain.com/jenkins
ProxyPassReverse /jenkins https://server.domain.com/jenkins
ProxyPass /sonar http://localhost:9000/sonar nocanon
ProxyPassReverse /sonar http://localhost:9000/sonar
AllowEncodedSlashes NoDecode
ProxyRequests Off
ProxyPreserveHost On
<Proxy http://localhost:8080/*>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
Здається, все працює нормально, за винятком того, що Дженкінс скаржиться на це повідомлення: Схоже, ваш налаштований зворотний проксі-сервер порушений.
Коли я запускаю тест ReverseProxySetupMonitor, наданий Дженкінсом, повідомлення про помилку вказує на те, що щось із зворотним проксі не налаштовано правильно, як і не замінює http на https:
$ curl -iLk -e https://server.domain.com/jenkins/manage https://server.domain.com/jenkins/administrativeMonitor/hudson.diagnosis.ReverseProxySetupMonitor/test
[...]
404 http://server.domain.com/jenkins/manage vs. https://server.domain.com/jenkins/manage
[...]
Це з’явилося лише після того, як я включив SSL на сервері (який зараз використовує самопідписаний сертифікат).
Запитання: Як виправити налаштування зворотного проксі, щоб Дженкінс був щасливим? Бонусні бали за поради щодо вдосконалення файлу конфігурації apache.
Я вже перевірив наступні два пов'язані питання:
sudo a2enmod headers
, інакше я отримаюInvalid command 'RequestHeader'