Apache várias entradas ProxyPass em um VirtualHost

6

Portanto, tenho as duas configurações a seguir:

Por um lado, um servidor de back-end:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost
  ProxyPass /backend http://some_remote_ip:7000/backend
  ProxyPassReverse /backend http://some_remote_ip:7000/backend
  ProxyPassReverseCookiePath / /backend
  ProxyPassReverseCookieDomain some_remote_ip localhost
</VirtualHost>

E, por outro lado, um servidor frontend:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost
  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

Se eu colocar esses arquivos em um arquivo .conf juntos, somente o que está escrito primeiro, no arquivo, funcionará, portanto, tecnicamente, eles estão corretos.

Então, minha pergunta é: Como posso ter várias entradas de ProxyPass na mesma % configuração deVirtualHost?

P.S .: Preciso acessar

  • o backend em localhost/backend
  • o frontend em localhost
por DrKaoliN 15.02.2017 / 11:06

1 resposta

6

O problema é que você tem várias seções do VirtualHost para o mesmo host virtual ( localhost ), então o Apache escolherá apenas um. Se você quiser que essas configurações funcionem juntas, você precisa colocar as diretivas ProxyPass em uma única configuração do VirtualHost:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName localhost

  ProxyPass /backend http://some_remote_ip:7000/backend
  ProxyPassReverse /backend http://some_remote_ip:7000/backend
  ProxyPassReverseCookiePath / /backend
  ProxyPassReverseCookieDomain some_remote_ip localhost

  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
    
por 15.02.2017 / 11:10