Symbole wieloznaczne ServerName na wirtualnych hostach opartych na nazwie Apache?

16

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
Martijn Heemels
źródło

Odpowiedzi:

40

Użyj ServerAliasraczej niż ServerNamesam:

ServerName somename.dev

ServerAlias *.dev

Mo.
źródło
2
Najnowsze wersje apache nie będą już nawet dopuszczać symboli wieloznacznych w ServerName, a błąd mówi zamiast tego użyć ServerAlias.
Quentin Skousen
Niesamowite. To było szybkie i do rzeczy. Def zaoszczędził mi czasu. Dzięki.
Art Geigel
4

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...)

Sÿl
źródło