2016-08-09 48 views
0

我有一個主機安裝nginx默認配置。對我來說這很奇怪,即使在默認的nginx.conf中,也只有一個虛擬服務器server_name localhost,但我仍然可以從我的筆記本電腦訪問nginx歡迎頁面。爲什麼我可以訪問一個nginx服務器,即使在配置中只有localhost的虛擬主機?

我非常確定配置文件是由nginx使用的,因爲當我更改了location /的根時,它在重新啓動服務後生效。

任何意見或任何想法如何我可以深入這個潛水員?

回答

2

Nginx的默認配置是什麼樣開始:

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

在聆聽告訴Nginx的主機名和它應該監聽HTTP連接的TCP端口。僅供參考'聽80';'相當於'聽*:80';'

server_name讓您可以基於域名的虛擬主機。如你所想的那樣。但是你只有一個服務器塊。所以聽是在控制。基本上它看到端口80上的請求,並且進展順利,因爲我沒有更好的選擇,我將使用此服務器塊。現在,如果您在端口80上添加更多服務器模塊,則Nginx將開始使用服務器名稱作爲確定使用哪個服務器名稱的手段。

您可以添加一臺服務器塊,如:

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

這將成爲默認的服務器如果沒有其他匹配。

希望有所幫助。

相關問題