Apache como proxy para Nexus, Jenkins e Foreman (vários VirtualHosts no mesmo domínio, IP e porta)

2

Eu gostaria de configurar o Apache para ser usado como um proxy para Nexus, Jenkins e Foreman, que estão instalados e sendo executados no mesmo servidor.

Aqui está um exemplo do arquivo de configuração do host virtual para o Foreman, os outros arquivos do Nexus e do Jenkins parecem bem parecidos, exceto os parâmetros de passagem do proxy.

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>

O problema é que o Apache leva em conta apenas um arquivo de configuração e ignora os outros dois que levam à mensagem de erro "O URL solicitado / jenkins / não foi encontrado neste servidor." quando eu tente acessar o URL management.domain.com/jenkins

Como configurar o Apache para carregar os três hosts virtuais? Obrigado

PS: a diretiva Listen é declarada no httpd.conf (= 443)

    
por PapelPincel 24.07.2013 / 09:56

1 resposta

3

Se você usar um nome de servidor, não funcionará como você deseja. Tudo o que você precisa é mesclar 3 virt hosts em um. Algo como

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
    
por 24.07.2013 / 12:39