W naszej sieci LAN skonfigurowałem kilka „fałszywych” TLD na serwerze DNS, z zamiarem wykorzystania ich do wirtualnego hostingu opartego na nazwie Apache. Chciałbym połączyć to z masowym wirtualnym hostingiem (tj. VirtualDocumentRoot) na serwerze Ubuntu 10.04 LAMP.
Nie mogę jednak uzyskać odpowiedniego hosta!
Oto podsumowanie konfiguracji Apache:
NameVirtualHost 10.10.0.205
<VirtualHost 10.10.0.205>
ServerName *.test
VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
<VirtualHost 10.10.0.205>
ServerName *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
Nazwa hosta, taka jak www.domain.com.dev , poprawnie rozwiązuje się do 10.10.0.205, ale zawsze wybiera górny vhost, zamiast dolnego, który jest bardziej zgodny.
Miałem wrażenie, że Apache najpierw spróbuje dopasować nazwę serwera, zanim domyślnie ustawi się na najwyższym vhostie dla danego adresu IP. Co ja robię źle? Czy to nie jest możliwe i czy muszę używać innego adresu IP dla każdej TLD?
Wyjścia apachectl -S (przycięte):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev
źródło
Jeśli to może pomóc, wystarczy wypełnić nieco odpowiedź Mo:
Symbole wieloznaczne w ServerAlias działają również na częściowych nazwach domen, takich jak
ServerName somename.dev
ServerAlias *-mysite.dev
Uratowała mi życie niedawno ^^ (główną stronę z subdomen dla każdej aplikacji sub takich jak
admin-somename.dev
,bo-somename.dev
,api-somename.dev
...)źródło