Domain-Name-System

服務多個域的單個 IP 伺服器的 /etc/hosts 條目

  • April 13, 2021

執行 Ubuntu 10.04

我的伺服器使用 Apache2 中的命名虛擬主機為 3 個不同的域提供服務。我目前正在使用不同的命名虛擬伺服器來 301 將 www 重定向到非 www 等效項。它工作正常,但我不理解我的 /etc/hosts 文件的正確條目,我認為這對我嘗試設置 Varnish 造成了問題。

我知道我需要 localhost 行

127.0.0.1       localhost localhost.localdomain

我還應該在這裡列出每個域嗎?如在

127.0.0.1       localhost localhost.localdomain example1.com example2.com example3.com

伺服器IP的條目呢?我需要以下行嗎?

< IP.Of.Server >      example1.com example2.com example3.com

另外,我是否應該在每一行列出 www.example.com 和 example.com,以便他們進入 Apache 並且它可以處理 301 redir?

我假設這是為了測試,否則您將設置正確的 DNS 記錄,而不是您的hosts文件。

你想要的是你想用它來呼叫你的網路伺服器的每個名字,來解析你的伺服器的 IP 地址。

如果您從伺服器本身進行測試,那麼您可以將所有內容都指向 127.0.0.1,但當然也可以將其指向您伺服器的實際 IP 地址。

如果您在另一台機器上進行測試,那麼您當然希望每個名稱都解析為伺服器的真實 IP 地址。

語法很簡單:

IP.of.server        www.domain.name domain.name
IP.of.server        www.otherdomain.name otherdomain.name
IP.of.server        www.anotherdomain.name anotherdomain.name
IP.of.server        www.yetanotherdomain.name yetanotherdomain.name

…等等。


更新:

當然,ErikA 說的完全正確。伺服器無需修改hosts文件即可工作;僅當/當您需要在沒有適當的 DNS 記錄的情況下對其進行測試時,或者如果您想覆蓋它們以將 fe 連接到測試伺服器而不是生產伺服器時,它才有用。

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