Frage Legen Sie Nginx fest, um alle nicht behandelten Vhosts abzufangen


Wenn ich bereits eine Reihe von virtuellen Hosts habe, wie kann ich einen virtuellen Host erstellen, um Anfragen zu bearbeiten, die keinem der virtuellen Hosts entsprechen? (d. h. Zugriff durch IP, eine andere Domäne, die mit IP verbindet, .etc .etc)


38
2017-07-29 23:57


Ursprung




Antworten:


Servername _; und default_server in der listen Konfiguration sind was du suchst.

Beispiel:

server {

   listen 80 default_server;
   server_name _;

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

}

48
2017-07-30 17:02



Und für den https Fall: listen 443 ssl default_server; - James T Snell
Wenn ich das mache, mein owncloud 9 wird nicht antworten. Warum? Owncloud VHOST hat einen Server-Namen und ist kein Standard-Server. - Corni
Ich benutze es nicht 80 nur 443 ist offen. - Corni
Wenn ich das hinzufüge, werden meine anderen Config-Snippets in / etc / nginx / sites-enabled / ignoriert. Alle Domains gehen zu /var/www/default in diesem Fall. Wie muss ich die Snippets bestellen? - rubo77
Ich kann eine VHS-PostgreSQL-Verbindungen erstellen? - Erlon Charles


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;
}

Die Einträge lauten Port 80 (HTTP), Port 443 (HTTPS), Port 80 IPv6 und Port 443 IPv6.

Du könntest hinzufügen log_not_found off; um zu vermeiden, dass ein Protokolleintrag für die Seite hinzugefügt wird, die nicht gefunden wird.


3
2018-02-08 00:30





Wenn Sie SSL verwenden, benötigen Sie zusätzliche Installationen für einen Standardserver - Zertifikat und Schlüssel (der selbst signiert sein kann).

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 versucht, eine SSL-Verbindung auf einem IP / Port-übereinstimmenden Standardserver zu akzeptieren. Wenn auf diesem Server cert / key fehlt, wird nginx die Verbindung abbrechen. Andere Server werden nicht getestet. Also vergessen Sie nicht cert / key.


3
2018-03-30 21:10