O Apache NameVirtualHost na porta 443 ignora o ServerAlias

6

Eu tenho uma configuração de host virtual baseada em nome na porta 443 de modo que as solicitações no host 'apple.fruitdomain' sejam intermediadas por proxy para o aplicativo apple e as solicitações no host 'orange.fruitdomain' sejam intermediadas por proxy para o aplicativo laranja. Isso está funcionando, mas eu gostaria de adicionar um ServerAlias para cada tal que pedidos no host 'apple' são proxied para apple-app e solicitações no host 'laranja' são proxy para o aplicativo de laranja. Se eu simplesmente adicionar uma diretiva ServerAlias ao host virtual, isso não funcionará. ssl.conf abaixo:

Listen 443
NameVirtualHost *:443
<VirtualHost *:443>
ServerName apple.fruitdomain
ServerAlias apple
SSLProxyEngine on
ProxyPass /apple-app https://localhost:8181/apple-app
ProxyPassReverse /apple-app https://localhost:8181/apple-app
...
</VirtualHost>
<VirtualHost *:443>
ServerName orange.fruitdomain
ServerAlias orange
SSLProxyEngine on
ProxyPass /orange-app https://localhost:8181/orange-app
ProxyPassReverse /orange-app https://localhost:8181/orange-app
...
</VirtualHost>

Curiosamente, se eu fizer uma configuração semelhante, mas com a porta 80, o ServerAlias funciona ...

    
por Ryan 06.04.2012 / 00:04

4 respostas

6

Bem, a partir dos meus testes, parece que a diretiva ServerAlias é ignorada ao usar hospedagem virtual baseada em nome na porta 443 com o Apache 2.2.15. Isso provavelmente se deve ao requisito especial do protocolo SNI ( SNI - Wikipedia ; SNI - Apache Wiki ). A solução é criar dois hosts virtuais separados; do meu exemplo, um teria o nome do servidor orange.fruitdomain e o outro teria o nome do servidor laranja.

    
por 09.04.2012 / 16:59
0

Para corrigir a configuração sublinhada, você precisa criar outro VirtualHost para propósitos "padrão" usando:

    ServerName localhost
or
    ServerName your_server_name

Por favor, consulte o documento apache httpd docs (Ex.) -

The ServerName directive sets the request scheme, hostname and port that the server uses to identify itself. This is used when creating redirection URLs. Additionally, ServerName is used (possibly in conjunction with ServerAlias) to uniquely identify a virtual host, when using name-based virtual hosts.

    
por 28.09.2015 / 14:44
-2

comente a linha listen 443 porque a escuta começa com o ssl automaticamente e se você iniciar antes de ver um conflito.

    
por 23.05.2012 / 18:58
-7

link

    
por 06.04.2012 / 00:22