Nginx
訪問沒有dns的本地網站?
我有一個帶有 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; } }