Como restringir a diretiva Apache Location para manter o subdomínio?

1

Em nosso servidor www.example.com , usamos a diretiva <Location> para tráfego de proxy para um servidor de backend:

<Location /app1>
  ProxyPass http://192.168.1.20
</Location>

Em seguida, adicionamos um subdomínio uat.example.com , que aponta para o mesmo endereço IP de www.example.com . Queremos usá-lo como um proxy para o cliente testar um aplicativo sendo desenvolvido. Espero que o cliente possa acessar via:

http://uat.example.com/app2_uat

Agora, se adicionarmos um local:

<Location /app2_uat>
  ProxyPass http://192.168.1.30
</Location>

O cliente pode acessar os dois:

http://www.example.com/app2_uat
http://uat.example.com/app2_uat

Como posso restringir o local de modo que apenas:

http://uat.example.com/app2_uat

É acessível? (por exemplo, http://www.example.com/app2_uat não deve estar acessível.)

    
por ohho 12.11.2013 / 03:14

1 resposta

1

Isso é fácil se você usar a opção NameVirtualHost no Apache. Eu tenho uma resposta detalhada fornecida para outro usuário aqui . O conceito básico é que você estará criando dois VirtualHost configs diferentes para cada subdomínio. Depois de fazer isso, você pode personalizar a configuração dos dois subdomínios & alcançar a granularidade que você está procurando.

EDITAR: Adicionando detalhes sobre como configurar NameVirtualHost para os detalhes da pergunta específica dos pôsteres originais:

Em geral, você precisa primeiro ativar NameVirtualHost para a porta desejada. Eu suponho que você usará a porta 80, então encontre essa linha na sua configuração do Apache - pode ser em /etc/apache2/ports.conf - & definido como assim:

NameVirtualHost *:80

Certifique-se de que sua configuração do Apache - as chances são iguais de /etc/apache2/ports.conf como acima - esteja definida para listar para a porta 80. Qual deve ser o caso, mas adicionando aqui para referência:

Listen 80

Aqui é onde a mágica acontece. Mais uma vez, eu estou apenas fazendo o básico básico, então ajuste as configurações do servidor. Isso é para www.example.com :

<VirtualHost *:80>
  ServerName www.example.com
  ServerAlias www.example.com

  <Location /app1>
    ProxyPass http://192.168.1.20
  </Location>

</VirtualHost>

E agora, para uat.example.com , crie uma nova configuração assim:

<VirtualHost *:80>
  ServerName uat.example.com
  ServerAlias uat.example.com

  <Location /app2_uat>
    ProxyPass http://192.168.1.30
  </Location>

</VirtualHost>

Ao usar NameVirtualHost , você pode configurar duas configurações de domínio separadas associadas a um endereço IP. Mais uma vez, por favor reveja a resposta a que me liguei acima para mais detalhes.

    
por 12.11.2013 / 04:15