Impostazione di Nginx per catturare tutti i vosts non gestiti


41

Se ho già un sacco di host virtuali, come posso creare un host virtuale per gestire le richieste che non corrispondono a nessuno degli host virtuali? (es. accesso tramite IP, un altro dominio collegato a IP, .etc .etc)

Risposte:


52

nome del server _; e default_server sulla configurazione di ascolto sono ciò che stai cercando.

Esempio:

server {

   listen 80 default_server;
   server_name _;

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

}

1
E per il caso https:listen 443 ssl default_server;
James T Snell,

Quando lo abilito, il mio owncloud 9non risponderà. Perché? Owncloud VHOST ha un nome_server e non è un server_predefinito.
Corni,

Non uso 80solo 443 è aperto.
Corni,

Se aggiungo questo, i miei altri frammenti di configurazione in / etc / nginx / siti-enabled / vengono ignorati. tutti i domini vanno /var/www/defaultin questo caso. Come devo ordinare i frammenti?
rubo77,

Posso creare connessioni vhos a postgresql?
Erlon Charles,

4

Se si utilizza SSL, è necessario un ulteriore impianto idraulico per un default_server: certificato e chiave (che possono essere autofirmati).

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 proverà ad accettare la connessione SSL su un server predefinito_IP / porta corrispondente. Se tale server manca cert / key, nginx interromperà la connessione. Non proverà altri server. Quindi non dimenticare cert / key.


Nota importante sul certificato SSL! Se manca il certificato, l'intero server nginx non verrà eseguito (anche se nginx -tdice "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;
}

Le voci sono rispettivamente per la porta 80 (HTTP), la porta 443 (HTTPS), la porta 80 IPv6 e la porta 443 IPv6.

Si potrebbe prendere in considerazione l'aggiunta log_not_found off;per evitare di aggiungere una voce di registro per la pagina non trovata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.