為什麼 nginx 在沒有 default_server 指令的情況下回應 IP 位址?

為什麼 nginx 在沒有 default_server 指令的情況下回應 IP 位址?

我有一個 nginx 網路伺服器,有兩個網站監聽兩個網域的 80 連接埠:dom.netdom.se

sites-enabled我有每個文件,dom.net.sitedom.se.site,除了server_name指令之外,它們是相同的。它是server_name dom.net *.dom.net;或者server_name dom.se *.dom.se;。其餘部分幾乎相同,但為了location幫助我調試,它看起來像這樣(對於 .net 網站):

  location /check {
    return 200 'dom.net';
    add_header Content-Type text/plain;
  }

我不明白的是,為什麼當我訪問 http://my-server-ip/check 時,我會得到與訪問相同的回應http://server.dom.net/check。我在任何網站檔案中都沒有default_server指令,並且 nginx 仍然回應 IP 位址。

為什麼它選擇http://server.dom.net並不是http://server.dom.se

很困惑。

答案1

在以下路徑中有一個 nginx 的預設設定:/etc/nginx/nginx.conf 如果你讀過它,你會發現有一個帶有「http{}」語法的區塊,並且在該區塊中有一行表示

include /etc/nginx/sites-enabled/*

所以 nginx 要做的就是按照評論中提到的“Gerald Schneider”的順序(字母順序)加載該目錄中的文件

相關內容