登台环境,如何处理域名?

Oli*_*nde 5 domain-name apache-2.2

对于那些不熟悉术语“暂存”的人来说,它包括将您的代码私下部署到生产服务器(或您的服务器的克隆),这样您就可以确保上线时不会出现任何问题。

我通常在域staging.example.com暂存我的代码,其中example.com是我的生产域。

我经常遇到的问题是当某些应用程序逻辑依赖于域名时,尤其是当域名在某处硬编码时。

假设您的临时环境和生产环境在同一台服务器上,您如何处理这种情况?

小智 6

我将所有应用程序设计为从数据库中提取信息。我所有的工作都是在java中进行的。扩展 java.util.Properties 类,以便从数据库而不是文件中提取所有内容。服务器与服务器之间唯一不同的是数据源的 JNDI 条目。关于做什么的所有逻辑都封装在扩展 java.util.Properties 类的类中。

这使得从 DEV -> UAT -> STAGING -> PROD 移动起来更容易。从 UAT -> STAGING -> PROD 进行时,我们的代码更改为零,没有 DNS 破坏,绝对没有重建 WAR 文件。

我们与并非都在同一环境中工作的开发人员打交道,DNS 处理/虚拟 IPS 可能变得难以调试。

当您拥有负载平衡/集群环境时开始扩展时,这也使您的生活更轻松。在扩展时尝试在应用程序中处理 DNS/虚拟 IPS 非常困难,并且会添加更多可能损坏的移动部件。


gra*_*ace 5

您可以添加别名 IP(或使用其他 NIC)并将临时服务器虚拟主机/服务器的 IIS 或 Apache 绑定到该特定 IP 地址;然后,您可以为 domain.com 创建一个 HOSTS 文件条目,以在您的测试机器上解析这个新的别名(或辅助)IP 地址(或者,如果您希望在 LAN 范围内访问通过 domain.com 登台,您可以创建一个 A记录在您的 LAN DNS 服务器中)。

当然,您将无法访问实际的实时服务器,因为您的新 A 记录或 HOSTS 文件条目将解析为错误的 IP 地址,直到被注释或删除。