Somente o primeiro host virtual de proxy reverso funciona

1

Estou tentando redirecionar serviços em execução no host local em várias portas para um sub-caminho em uma única porta. Por exemplo, o link para o link .

O problema que estou tendo é que apenas o primeiro bloco de Host Virtual funciona. Se eu trocar os dois hosts apenas o trabalho de primeiro / primeiro host. Todos os outros hosts retornam erro Não encontrado.

Aqui estão as diretivas do apache em questão:

<VirtualHost *:80>
  ServerName app1.example.com
  #ServerAlias app1
  ProxyRequests Off
  ProxyPass /app1 http://127.0.0.1:6687/
  ProxyPassReverse /app1 http://127.0.0.1:6687/
</VirtualHost>

<VirtualHost *:80>
  ServerName app2.example.com
  #ServerAlias app2
  ProxyRequests Off
  ProxyPass /app2 http://127.0.0.1:7687/
  ProxyPassReverse /app2 http://127.0.0.1:7687/
</VirtualHost>

O que eu não estou vendo aqui? Por que apenas o primeiro host virtual funciona?

    
por DominicM 21.06.2017 / 12:30

1 resposta

1

Nenhum de seus blocos VirtualHost corresponde a 127.0.0.1 , portanto, o Apache pega o primeiro bloco encontrado.

Seus virtualhosts são diferenciados pelo ServerName . Se você quiser alcançar os dois /app1 e /app2 com 127.0.0.1 , será necessário colocar as duas ProxyPass diretivas no mesmo bloco VirtualHost .

<VirtualHost *:80>
  ServerName app1.example.com
  ServerAlias app2.example.com
  ProxyRequests Off
  ProxyPass /app1 http://127.0.0.1:6687/
  ProxyPassReverse /app1 http://127.0.0.1:6687/
  ProxyPass /app2 http://127.0.0.1:7687/
  ProxyPassReverse /app2 http://127.0.0.1:7687/
</VirtualHost>

Ou use apenas o ServerName nos seus pedidos de http.

http://app1.example.com/app1/
http://app2.example.com/app2/

O /app* é redundante de qualquer forma, eu deixei cair e use ProxyPass / http://... com dois VirtualHosts.

    
por 21.06.2017 / 12:36