Qual é a diferença entre *: 80 e _default_: 80 no Apache2?

8

Estou tentando entender a diferença entre os dois termos a seguir:

*:80
_default_:80

no arquivo de configuração do Apache. A documentação aqui não está clara para mim, e a única conversa da lista de discussão que pude encontrar aqui não elimina qualquer (compreensível, para mim) a luz sobre o assunto também.

Eu tenho um monte de hosts virtuais baseados em nomes declarados assim:

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

e gostaria de ter uma entrada que seja disparada quando nenhuma delas corresponder, ou seja, quando uma solicitação chegar sem um nome de host virtual ou com um nome de host virtual que não tenha sido declarado. Devo usar *:80 ou _default_:80 ?

    
por Johannes Ernst 08.07.2012 / 09:23

1 resposta

9

Acho que _default_ é usado para definir um vhost padrão em uma configuração de host virtual baseada em IP. Você está usando hospedagem virtual baseada em nome, portanto, esta declaração na documentação

A default vhost never serves a request that was sent to an address/port that is used for name-based vhosts.

torna-se relevante.

Em uma configuração de host virtual baseada em nome, o primeiro vhost definido é o vhost padrão e será servido se nenhuma outra correspondência for encontrada, para que você possa fazer algo simples como

<VirtualHost *:80>
    ServerName default
    DocumentRoot /var/www/default
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/example.com
</VirtualHost>

<VirtualHost *:80>
    ServerName sub.example.com
    DocumentRoot /var/www/sub.example.com
</VirtualHost>

Faz o que você quiser e veicula tudo, exceto example.com e sub.example.com do padrão.

    
por 08.07.2012 / 11:36