Por que a criação do subdomínio e do IP do curinga do Apache cria um redirecionamento infinito?

2

Eu tenho o Apache configurado com vários endereços IP:

Listen 111.111.111.111:80
Listen 111.111.111.111:443

Listen 222.222.222.222:80
Listen 222.222.222.222:443

Listen 333.333.333.333:80
Listen 333.333.333.333:443

(IPs são falsos)

Eu tenho vários VirtualHosts, um dos quais é um subdomínio curinga.

<VirtualHost *:80>
        ServerName *.example1.com
        DocumentRoot /var/www/vhosts/example1-wc/docs
</VirtualHost>

<VirtualHost *:80>
        ServerName www.example1.com
        DocumentRoot /var/www/vhosts/example1/docs
</VirtualHost>

<VirtualHost *:80>
        ServerName www.example2.com
        DocumentRoot /var/www/vhosts/example2/docs
</VirtualHost>

Isso funciona bem. Solicitações para www.example1.com são exibidas no exemplo1 docroot, as solicitações para example.example1.com são exibidas no exemplo1-wc docroot e em www.example2.com para example2 docroot.

Eu posso alterar www.example2.com para usar um IP específico sem problemas, no entanto, se eu alterar o vhost * .example1.com curinga para um IP específico:

<VirtualHost 111.111.111.111:80>
        ServerName *.example1.com
        DocumentRoot /var/www/vhosts/example1-wc/docs
</VirtualHost>

As solicitações para www.example1.com criam um loop de redirecionamento infinito sobre si mesmo. Isso acontece independentemente de eu usar:

<VirtualHost 222.222.222.222:80>
        ServerName www.example1.com
        DocumentRoot /var/www/vhosts/example1/docs
</VirtualHost>

ou

<VirtualHost *:80>
        ServerName www.example1.com
        DocumentRoot /var/www/vhosts/example1/docs
</VirtualHost>

Por que isso está acontecendo e como posso obter cada virtualhost em seu próprio IP?

    
por DavidM 10.05.2009 / 21:00

2 respostas

2

Não tenho certeza se esta é a raiz do seu problema, mas você provavelmente deve ter as diretivas

NameVirtualHost 111.111.111.111:80
NameVirtualHost 222.222.222.222:80
NameVirtualHost 333.333.333.333:80

Assim, a configuração completa teria essas diretivas:

Listen 111.111.111.111:80
NameVirtualHost 111.111.111.111:80
<VirtualHost 111.111.111.111:80>
    ServerName *.example1.com
    DocumentRoot /var/www/vhosts/example1-wc/docs
</VirtualHost>

Listen 222.222.222.222:80
NameVirtualHost 222.222.222.222:80
<VirtualHost 222.222.222.222:80>
    ServerName www.example1.com
    DocumentRoot /var/www/vhosts/example1/docs
</VirtualHost>

Listen 333.333.333.333:80
NameVirtualHost 333.333.333.333:80
<VirtualHost 333.333.333.333:80>
    ServerName www.example2.com
    DocumentRoot /var/www/vhosts/example2/docs
</VirtualHost>

mas isso não deve aparecer em nenhum lugar:

NameVirtualHost *:80

Veja algumas outras leituras, se estiver interessado: link (boa sorte fazendo sentido dele; -)

    
por 10.05.2009 / 21:18
0

Apenas um palpite, mas você tentou colocar a definição para o subdomínio curinga após a definição de www.example1.com?

    
por 10.05.2009 / 21:24

Tags