Nginx

訪問沒有dns的本地網站?

  • April 26, 2017

我有一個帶有 2 個站點的 nginx 負載均衡器設置。負載均衡器的 ip 地址是 192.168.123.10 我想本地訪問這兩個站點來檢查是否一切正常。但我對主機名和域名有點困惑。我為第一個站點提供了主機名:“test”和域名“mytest.local”。我在手冊中讀到,如果我想訪問該站點,我應該去 test.mytest.local 並使該地址的 dns 指向負載均衡器的 IP。

但是我不明白我的電腦如何知道我想要哪個站點,因為如果我負載均衡的另一個站點是 anothertest.mytest.local 並且它解析為相同的 IP,這會有什麼不同?

我沒有設置任何dns,我只是想檢查一下nginx是否工作,所以我仍然可以在本地訪問網站test.mytest.local嗎?(不設置DNS)?

是的,你可以,/etc/hosts像這樣編輯:

192.168.0.10 example.com.local

當您嘗試解析任何主機名時,它首先檢查該文件,然後繼續使用 DNS 伺服器。我這樣說是為了讓您知道,例如,如果您添加1.2.3.4 google.com/etc/hosts,您將無法獲得真實的google.com

“NGINX 伺服器塊”似乎是您正在尋找的。

Web 客戶端(即 Firefox 或 Chrome)將預期的 URL 發送到 Web 伺服器,因此 Web 伺服器可以根據 Web 瀏覽器用來訪問它的“名稱”在同一 IP 上提供不同的站點。

從這個 NGINX 頁面看一下這個範例配置,它是不言自明的:

http {
 index index.html;

 server {
   server_name www.domain1.com;
   access_log logs/domain1.access.log main;

   root /var/www/domain1.com/htdocs;
 }

 server {
   server_name www.domain2.com;
   access_log  logs/domain2.access.log main;

   root /var/www/domain2.com/htdocs;
 }
}

引用自:https://serverfault.com/questions/772922