通常在私有局域网中,假设我有一个 Web 应用程序需要访问另一台机器上的数据库。哪种做法更好?
- 使用 IP 地址访问数据库
- 或者通过域名访问数据库
如果是通过域名,那么我们需要设置类似 BIND 的东西(https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-16-04) 将域名映射到 IP 地址。
答案1
使用域始终是一种很好的做法,因为您可以自由地更换服务器,而无需对应用程序进行任何更改。假设您有一个在单台计算机 (HostA) 上运行的 Web 应用程序,并且您的数据库在单台计算机 (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)在您的应用程序中,并确保所有应用程序主机在其 hosts 文件中都有相关条目,可以使用任何配置管理工具进行管理。这更像是一种黑客手段,而不是解决方案,但它确实有效,而且维护起来非常简单。