主機名與具有多個公共 IP 的伺服器上的 IP 地址有何關係?
我的託管服務提供商使用三個公共 IP 為我設置了一個基於 Ubuntu 的虛擬專用伺服器。我想為這些 IP 分配主機名,如下所示(我使用 Dyn 作為我的 DNS):
- example.com -> IP_1
- www.example.com -> IP_1
- test.example.com -> IP_2
- admin.example.com -> IP_3
www.example.com 將是生產站點。test.example.com 將是站點的最前沿版本,用於測試,而 admin.example.com 將公開許多站點管理服務(例如 SSH、rsyncd)。www 和 test 都將鎖定到埠 80。 test 和 admin 都將只接受來自某些 IP 的流量。
我對 DNS 處理的主機名和伺服器的主機名之間的區別有點困惑(如在伺服器命令行上執行“主機名”時所見)。伺服器的主機名在哪裡起作用?
我的猜測是 Apache 2 並不關心
hostname
實用程序返回什麼,因為我可以指定每個 VirtualHost 的偵聽 IP:PORT。但是,如果機器的主機名是“randomname”,那麼在通過“foo.mydomain.com”連接到我的伺服器時,它們是否是我應該注意的其他服務(或限制)?
主機名可以輕鬆區分伺服器。有關詳細資訊,請參閱RFC-1178 為您的電腦選擇名稱。對於您在做什麼,伺服器的主機名並不重要。在您的情況下,您的主機將託管多個 FQDN(完全限定域名)以啟用服務。您可以使用額外的 DNS CNAME 或 A 記錄添加更多內容。
由於您有一個小型站點,所有這些域都指的是單個主機。像 google.com 這樣的大型服務擁有由多個伺服器支持的多個 IP 地址。在某些情況下,IP 地址可能屬於多個伺服器前面的負載平衡器。
對於 Apache 伺服器,您應該使用基於 IP 的虛擬主機。您可以使用 Apache ACL 和/或防火牆來限制訪問。我盡可能兩者都用。
如果您添加郵件伺服器,則應應用其他規則。郵件伺服器的 FQDN 應與伺服器宣布的名稱相同。此外,IP 地址應具有返回該 FQDN 的 PTR 記錄。