Was ist der Unterschied zwischen *: 80 und _default_: 80 in Apache2?

8

Ich versuche den Unterschied zwischen den folgenden beiden Begriffen zu verstehen:

*:80
_default_:80

in der Apache-Konfigurationsdatei. Die Dokumentation hier ist mir unklar, und das einzige Mailingliste Gespräch , dass ich finden konnte hier nicht vergießt jedes (verständlich, mich) Licht in der Sache auch nicht .

Ich habe eine Reihe von namenbasierten virtuellen Hosts wie folgt deklariert:

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

und ich möchte einen Eintrag haben, der ausgelöst wird, wenn keiner dieser Einträge übereinstimmt, dh wenn eine Anforderung ohne virtuellen Hostnamen oder mit einem nicht deklarierten virtuellen Hostnamen eingeht. Soll ich verwenden *:80oder _default_:80?

Johannes Ernst
quelle
Bei Apache können Sie entweder eine Website auf einer einzelnen IP-Nummer oder ein anderes Modell haben. Sie können mehrere Websites auf derselben IP-Nummer und einer anderen Domain hosten, die als VirtualHost konfiguriert sind und auf demselben Port 80 lauschen.
Andrew Smith

Antworten:

9

Ich denke, das _default_wird verwendet, um einen Standard-vhost in einer IP-basierten virtuellen Host-Konfiguration zu definieren. Sie verwenden namenbasiertes virtuelles Hosting, daher diese Aussage in der Dokumentation

Ein Standard-vhost bedient niemals eine Anforderung, die an eine Adresse / einen Port gesendet wurde, die bzw. der für namensbasierte vhosts verwendet wird.

wird relevant.

In einer namenbasierten virtuellen Hostkonfiguration ist der erste definierte vhost der Standard-vhost und wird bereitgestellt, wenn keine andere Übereinstimmung gefunden wird, sodass Sie etwas Einfaches tun können

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

Würde tun, was Sie wollen und alles außer example.com und sub.example.com vom Standard bedienen.

user9517
quelle