web-dev-qa-db-fra.com

Le meilleur moyen d'empêcher le serveur par défaut?

J'ai un certain nombre de vhosts, et je voudrais "désactiver" le vhost par défaut, soit par une page vierge, une page d'erreur, ou généralement quelle que soit l'utilisation la plus efficace des ressources de Nginx, tout en autorisant uniquement l'accès à d'autres vhosts via domaines prédéfinis.

27
DanH

Définissez un serveur_par défaut qui renvoie un code HTTP 444 :

server {
    listen      80 default_server;
    server_name _;
    return      444;
}

(Le retour d'un code d'erreur 4xx signifie que les demandes peuvent être interprétées par un client comme une demande infructueuse, plutôt comme HTTP 200 Blank Page But Totally Worked Trust Me .)

44
Rob Howard

Définissez simplement par défaut vhost qui pointera vers le répertoire avec un fichier index.html vierge.

server {
    listen       80 default_server;
    server_name  _ ;
    root /var/www/placeholder ; 
    index index.html;
}

et placez un index vide dans/var/www/placeholder

4
wojciechz

J'apprends ce document de base sous forme asp.net

https://docs.Microsoft.com/en-us/aspnet/core/Host-and-deploy/linux-nginx?view=aspnetcore-3.1#configure-nginx

server {
    listen   80 default_server;
    # listen [::]:80 default_server deferred;
    return   444;
}

Vous pouvez également le trouver dans le document nginx

https://nginx.org/en/docs/http/request_processing.html

server {
    listen      80;
    server_name "";
    return      444;
}

Ici, le nom du serveur est défini sur une chaîne vide qui correspondra aux demandes sans le champ d'en-tête "Host", et un code non standard 444 spécial de nginx est renvoyé qui ferme la connexion.

0
ws_

pourquoi ne pas tout nier

server {
    listen       80 default_server;
    server_name  _;

    location / {
        deny    all;
    }
}
0
Joel Ma