Я хотел бы настроить Apache для использования в качестве прокси для Nexus, Jenkins и Foreman, которые установлены и работают на одном сервере.
Вот пример файла конфигурации виртуального хоста для Foreman, остальные файлы для Nexus и Jenkins выглядят почти так же, за исключением параметров передачи прокси.
LoadModule ssl_module modules/mod_ssl.so
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/httpd/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/httpd/ssl/keys/server.key
ServerName management.domain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /foreman http://127.0.0.1:3000/foreman
ProxyPassReverse /foreman http://127.0.0.1:3000/foreman
ProxyPassReverse /foreman http://management.domain.com/foreman
ProxyRequests Off
ProxyPreserveHost On
ErrorLog /var/log/httpd/management.domain.com_foreman_error.log
LogLevel warn
CustomLog /var/log/httpd/management.domain.com_foreman_access.log combined
</VirtualHost>
Проблема в том, что Apache учитывает только один файл конфигурации и игнорирует два других, что приводит к сообщению об ошибке. «Запрошенный URL / jenkins / не найден на этом сервере». когда я пытаюсь получить доступ к URL management.domain.com/jenkins
Как настроить Apache для загрузки трех виртуальных хостов? Спасибо
PS: директива Listen объявлена в httpd.conf (= 443)
Если вы используете одно имя сервера, оно не будет работать так, как вы хотите. Все, что вам нужно, это объединить 3 виртуальных хоста в один. Что-то вроде
LoadModule ssl_module modules/mod_ssl.so
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/httpd/ssl/certs/ssl.crt
SSLCertificateKeyFile /etc/httpd/ssl/keys/server.key
ProxyRequests Off
ProxyPreserveHost On
ServerName management.domain.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /foreman http://127.0.0.1:3000/foreman
ProxyPassReverse /foreman http://127.0.0.1:3000/foreman
ProxyPassReverse /foreman http://management.domain.com/foreman
ProxyPass /nexus http://127.0.0.1:3000/nexus
ProxyPassReverse /nexus http://127.0.0.1:3000/nexus
ProxyPassReverse /nexus http://management.domain.com/nexus
ProxyPass /jenkins http://127.0.0.1:3000/jenkins
ProxyPassReverse /jenkins http://127.0.0.1:3000/jenkins
ProxyPassReverse /jenkins http://management.domain.com/jenkins