Eu só estou querendo saber aqui, não faz sentido que, uma vez que mysite.net
é o primeiro vhost para VirtualHost 10.20.20.10:80
que se tornaria o site padrão?
Não sei por que _default_
não está funcionando para você. Mas talvez algo assim pudesse funcionar em seu lugar. É isso que você diz que já tentou? O que não é ideal?
<VirtualHost 10.20.20.10:80>
ServerName default
# More config ...
</VirtualHost>
<VirtualHost 10.20.20.10:443>
ServerName default
# More config ...
</VirtualHost>
<VirtualHost 10.20.20.10:80>
ServerName mysite.net
# More config ...
</VirtualHost>
<VirtualHost 10.20.20.10:443>
ServerName mysite.net
# More config ...
</VirtualHost>
Esta pergunta / resposta explicaria seu problema se você estivesse usando o Apache 2.2. Mas você não é. Honestamente, não é algo com o qual eu esteja excessivamente familiarizado. Aparentemente, você não deve usar _default_
com hospedagem virtual baseada em nome, em vez de *:*
ou *:port
.
diferença entre _default_: * e *: * no contexto do VirtualHost
So with a named based virtualhosting configuration:
<Virtualhost *:80> with ServerName foo.com means "on all IPs managed on this host", "on port 80", "if the request host header is foo.com" I'll use this virtualhost
<Virtualhost *:*> with Servername foo.com means "on all IPs managed on this host", "on all ports", "if the request host header is foo.com" I'll use this virtualhost
<Virtualhost 10.0.0.2:*> with Servername foo.com means "for request incoming from my network interface 10.0.0.2", "on all ports", "if the request host header is foo.com" I'll use this virtualhost
<Virtualhost _default_:*> with Servername foo.com : should not be used with name based virtualhosting
And on an IP based Virtualhosting:
<Virtualhost 10.0.0.2:*> means "I'll use this virtualhost for request coming on my 10.0.0.2 interface"
<Virtualhost _default_:443> means "I'll use this virtualhost for all other network interface on my host for request coming on port 443"
<Virtualhost _default_:*> means "I'll use this virtualhost for all other network interface on my host, if it is not matched by a previous rule, and if the request host header is not matched by a named based virtualhost"
Ubuntu igual a você Tentei atribuir um IP a um dos vhosts (example2.com) em vez de <VirtualHost *:80>
e agora substitui o vhost padrão. Parece que é assim que o Apache funciona. Um * não pode substituir um endereço IP. curl 192.168.1.143
agora me dá example2.com em vez da página catchall.
$ sudo apachectl -S
VirtualHost configuration:
192.168.1.143:80 example2.com (/etc/apache2/sites-enabled/example2.com.conf:1)
*:80 is a NameVirtualHost
default server www1.swass (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost www1.swass (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost example.com (/etc/apache2/sites-enabled/example.com.conf:1)
wild alias *.example.com
Melhor da sorte