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.
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 .)
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
J'apprends ce document de base sous forme asp.net
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.
pourquoi ne pas tout nier
server {
listen 80 default_server;
server_name _;
location / {
deny all;
}
}