Configuration de Nginx pour intercepter tous les vhosts non gérés


41

Si j'ai déjà un groupe d'hôtes virtuels, comment puis-je créer un hôte virtuel pour gérer les demandes qui ne correspondent à aucun des hôtes virtuels? (c.-à-d. accès par IP, un autre domaine liant à IP, .etc .etc)

Réponses:


52

nom du serveur _; et default_server sur la configuration d'écoute sont ce que vous recherchez.

Exemple:

server {

   listen 80 default_server;
   server_name _;

   root /var/www/default; (or wherever)    

}

1
Et pour le cas https:listen 443 ssl default_server;
James T Snell

Quand j'active ceci, mon owncloud 9ne répondra pas. Pourquoi? Owncloud VHOST a un nom de serveur et n’est pas un serveur par défaut.
Corni

Je n'utilise pas 80que 443 est ouvert.
Corni

Si j'ajoute cela, mes autres extraits de configuration dans / etc / nginx / sites-enabled / sont ignorés. tous les domaines vont /var/www/defaultdans ce cas. Comment dois-je commander les extraits?
rubo77

Je peux créer un vhos aux connexions postgresql?
Erlon Charles

4

Si vous utilisez SSL, vous aurez besoin de plus de plomberie pour un serveur_défaut - certificat et clé (pouvant être auto-signé).

server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    return 404; # or whatever
}

Nginx essaiera d’accepter la connexion SSL sur un serveur par défaut IP / port compatible. Si un tel serveur manque à cert / key, nginx abandonnera la connexion. Il n'essaiera pas d'autres serveurs. Alors n'oubliez pas cert / key.


Note importante à propos du certificat SSL! Si le certificat est manquant, tout le serveur nginx ne fonctionnera pas (même s'il nginx -tdit "ok")
Philipp

3
server {
  listen 80 default_server;
  listen 443 ssl default_server;
  listen [::]:80 default_server;
  listen [::]:443 ssl default_server;

  server_name _;
  root /path/to/default;
}

Les entrées sont pour le port 80 (HTTP), le port 443 (HTTPS), le port 80 IPv6 et le port 443 IPv6, respectivement.

Vous pouvez envisager d'ajouter log_not_found off;pour éviter d'ajouter une entrée de journal pour la page introuvable.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.