Web 應用程序網路:IP 地址還是域名?
通常在私有 LAN 中,假設我有一個 Web 應用程序需要訪問另一台機器上的數據庫。哪個是更好的做法?
- 使用其 IP 地址訪問數據庫
- 或者用它的域名訪問數據庫
如果是通過域名,那麼我們需要設置類似 BIND(https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns- server-on-ubuntu-16-04)然後將域名映射到 IP 地址。
使用域始終是一種很好的做法,因為您可以自由更換伺服器,而無需對應用程序進行任何更改。想像一下,您有一個 Web 應用程序在單台機器 (HostA) 上執行,而您的數據庫在單台機器 (DB1) 上執行。
幾週後,您開始獲得越來越多的流量,是時候擴展了,因此您開始添加 Web 應用程序機器,現在您有 HostA、HostB、HostC 和 HostD 執行您的 Web 應用程序,但是您現在可以看到您的數據庫活動有也增加了,您需要將數據庫移動到更大更好的機器上。您繼續準備一台新機器 (DB2),現在是時候將應用程序從舊 DB1 遷移到新 DB2。
**IP 地址:**更改您的應用程序,部署到所有 4 或 400 台機器。
**FQDN:**更改 fqdn 的 DNS 記錄,它會傳播到所有應用程序主機,無論是 4 還是 400。
如果您剛剛起步並且沒有超過 50 台主機的基礎架構,那麼您可以在沒有 DNS 的情況下繼續進行,但遲早您會需要它。您將在多個主機上執行多個應用程序,並且您將需要內部 DNS 服務。
DNS 的替代方法是
/etc/hosts
在您的應用程序中使用 FQDN (db.example.com) 並確保您的所有應用程序主機在主機文件中都有相關條目,可以使用任何配置管理工具進行管理。這與其說是一種解決方案,不如說是一種技巧,但它可以工作並且維護起來非常簡單。