2016-08-09 178 views
0

Ich habe einen Host, der nginx mit der Standardkonfiguration installiert. Es ist komisch für mich, dass es selbst in der Standard-Nginx.conf nur einen virtuellen Server mit Servername localhost gibt, aber trotzdem konnte ich von meinem Laptop aus auf die nginx-Willkommensseite zugreifen.Warum konnte ich auf einen Nginx-Server zugreifen, obwohl es nur einen virtuellen Host von localhost in der Konfiguration gibt?

Ich bin ziemlich sicher, dass die Konfigurationsdatei von Nginx verwendet wird, als wenn ich das Stammverzeichnis von location / änderte, wird es nach dem Neustart des Dienstes wirksam.

Irgendwelche Vorschläge oder irgendwelche Ideen, wie ich diesen Taucher tief tauchen könnte?

Antwort

2

Nginx Standardkonfiguration ist etwas beginnen wie:

server { 
    listen  80; 
    server_name localhost; 
    ... 
} 

Plays sagt Nginx der Hostname und der TCP-Port, wo es für HTTP-Verbindungen überwachen soll. FYI 'höre 80;' entspricht "hören *: 80;"

server_name ermöglicht Ihnen domänennamenbasiertes virtuelles Hosting. Wie du angenommen hast. Aber Sie haben nur einen Serverblock. Also übernimmt das Hören die Kontrolle. Im Grunde sieht es eine Anfrage auf Port 80 und geht gut, da ich keine bessere Auswahl habe. Ich werde diesen Serverblock benutzen. Wenn Sie jetzt mehr Serverblöcke auf Port 80 hinzufügen, wird Nginx Servernamen verwenden, um herauszufinden, welche verwendet werden sollen.

Sie können einen Server-Block wie hinzufügen:

server { 
     listen       80 default_server; 
     server_name      _; 
     ... 
} 

Welche der Standardserver, wenn sonst nichts passt werden wurde.

Hoffe, dass hilft.