Si j'ai déjà un tas de virtualhosts, comment puis-je créer un hôte virtuel pour gérer les demandes qui ne correspondent à aucun des virtualhosts? (c'est-à-dire accès par IP, un autre domaine lié à une IP, .etc .etc)
Réponses
Trop de publicités?Si vous utilisez SSL, vous avez besoin d'un équipement supplémentaire pour un default_server - certificat et clé (qui peuvent être auto-signés).
server {
server_name _;
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate ;
ssl_certificate_key ;
return 404; # ou autre chose
}
Nginx essaiera d'accepter une connexion SSL sur un serveur par défaut correspondant à l'adresse IP/au port. Si un tel serveur n'a pas de certificat/clé, nginx abandonnera la connexion. Il ne tentera pas d'autres serveurs. N'oubliez donc pas le certificat/clé.
serveur {
écouter 80 serveur par défaut;
écouter 443 ssl serveur par défaut;
écouter [::]:80 serveur par défaut;
écouter [::]:443 ssl serveur par défaut;
nom du serveur _;
racine /chemin/vers/par/défaut;
}
Les entrées sont pour le port 80 (HTTP), le port 443 (HTTPS), le port 80 IPv6 et le port 443 IPv6, respectivement.
Vous pourriez envisager d'ajouter log_not_found off;
pour éviter d'ajouter une entrée de journal pour la page non trouvée.
Si vous avez des directives listen
avec des adresses IP explicites répertoriées, vous devrez également inclure ces mêmes adresses IP dans la directive listen de votre bloc par défaut.
serveur {
listen 80 default_server;
listen 10.0.0.10:80 default_server;
server_name _;
}
serveur {
listen 10.0.0.10:80;
server_name foo.example.com;
}
Sans la directive listen 10.0.0.10:80 default_server
dans le bloc par défaut, foo.example.com
serait servi pour http://10.0.0.10
même si 10.0.0.10
est votre adresse IP par défaut.