Default vhost für Nginx

nginx_logoBei Apache wird immer die zuerst eingelesene vHost Datei für die Ausgabe verwendet (000-default), wenn keine Übereinstimmung in den vHosts gefunden wurde.
Bei Nginx ist es hingegen möglich, bewusst einen Alternativhost zu wählen, der bei Nichtübereinstimmung der server_name Angabe ausgewählt wird.
Es ist vergleichsweise sehr einfach, diesen zu bestimmen.
Bei der „server_name“ Angabe ist lediglich „default“ und unter „listen“ ist „default_server“ anzugeben. Schon wird dieser Host als Alternative verwendet.

Hier ein kleines Beispiel:

server {
    listen       80 default_server;
    server_name  default;
    root /var/vhosts/default;

    error_page 404 /index.html;
    location / {
        return 404;
    }
    location = /index.html {
        internal;
    }
}

server {
    listen       [::]:80 ipv6only=on default_server;
    server_name  default;
    root /var/vhosts/default;

    error_page 404 /index.html;
    location / {
        return 404;
    }
    location = /index.html {
        internal;
    }
}

404

Hierbei wird Nginx befohlen, alle IPv4 und IPv6 Anfragen ohne übereinstimmender „server_name“ Angabe auf die angegebenen 2 Hosts umzuleiten.

In diesem Fall wird, egal wie die URL aussieht, die Datei index.html aus dem Ordner /var/vhosts/default ausgegeben.

Zusätzlich zur eigenen Fehlerseite wird der 404 Statuscode (Not found – Nicht gefunden) mitgesendet. Dies verhindert, dass nicht existente Seiten von Suchmaschinen indexiert und eventuell alle Webseiten, die sich auf den Server befinden, abgewertet werden.

 

Das war’s von seiten Nginx. Jetzt geht es ans Designen einer schönen Fehlerseite 😉

PS.: Bei Unterhaltungsbox.com sieht die default Seite so aus: http://s1.unterhaltungsbox.com/

Author: Thomas2500

Default vhost für Nginx
5 (100%) 2 votes

Kommentar verfassen