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

对于那些不熟悉“暂存”这个术语的人来说,它是私下部署你的代码到生产服务器(或者服务器的一个克隆),这样你就可以确保在你上线的时候什么都不会中断。

我通常在域staging.example.com上展示我的代码,其中example.com是我的生产域。

我经常遇到的问题是,某些应用程序逻辑取决于域名,特别是如果域名是硬编码的。

假设你的升级和生产环境在同一台服务器上,你如何处理这种情况呢?

您可以添加别名IP(或使用其他NIC),并将IIS或Apache的登台服务器虚拟主机/服务器绑定到该特定IP地址; 您可以为domain.com创build一个HOSTS文件条目,以parsing您的testing机器上的这个新的别名(或次要)IP地址(或者如果您希望在整个局域网范围内访问通过domain.com登台,您可以创build一个Alogging在你的局域网DNS服务器上)。

当然,因为新的Alogging或HOSTS文件条目将parsing为错误的IP地址,直到注释掉或删除,您将无法击中实际的现场服务器。

我devise所有的应用程序来从数据库中提取信息。 我所有的工作都是用java编写的。 扩展java.util.Properties类,以便从数据库中取出所有内容,而不是文件。 唯一不同的是服务器到服务器是数据源的JNDI条目。 所有关于做什么的逻辑都被封装在扩展java.util.Properties类的类中。

这使得从DEV – > UAT – > STAGING – > PROD更容易。 我们有零代码的变化,没有DNS分离,从UAT – > STAGING – > PROD完全没有重buildWAR文件。

我们与那些不在同一环境中工作的开发者打交道,DNS mucking / Virutal IPS可能会变得很难debugging。

当您在负载均衡/集群环境中开始扩展时,这也使得生活更轻松。 试图在当时的应用程序中处理DNS /虚拟IPS时,扩大规模是非常困难的,并增加了更多的可移动部分,可以打破。

我总是将登台服务器设置为在真实域上进行响应,然后更改我的本地主机文件以将真实域名指向登台服务器的IP地址。 当然,这只有当你有独立的服务器,你应该!

有一些Windows实用程序可以在Mac上使用防毒面具来更改主机文件。 在Windows上,您可能需要刷新mac上的dns(ipconfig / flushdns)。一旦您点击“应用”,Gas Mask就会更改它。

您可以使用视图设置DNS服务器。 在内部视图中返回登台环境的IP地址。 为了避免冲突,只configurationtesting客户端使用这些DNS服务器。