如何在不使用 hosts 文件的情况下暂时覆盖域名解析?

如何在不使用 hosts 文件的情况下暂时覆盖域名解析?

我有同一个网站的两个版本,位于不同的 IP 上 - 一个是生产版本,一个是暂存版本。

生产服务器:完全由 Site5 管理。DNS 已完成,可foo.com解析到 Site5 的服务器,其余部分由 Site5 负责。

暂存服务器:是一个 EC2 实例,并且 Apache 设置了一个基于名称的虚拟主机foo.com

作为开发人员,当我需要处理暂存版本时,我会更改文件hosts以便:

foo.com    1.2.3.4    # the elastic IP associated with my EC2 instance

因此,当我在浏览器中访问时foo.com,我会看到暂存版本。当我想查看生产版本时,我会注释掉该行。

对我来说这一切都很好,但团队中的其他人并不那么精通技术并且害怕终端。

有没有更好的方法来做到这一点,最好是一种不需要深入终端或其他“可怕的东西”的方法?

也许当他们想要查看/不想查看暂存版本时,他们可以选择使用/不使用代理服务器?

答案1

使用 ipaddress 访问它或使用唯一的域名。网站内的所有链接都应是相对的,否则如果托管在另一个域上,网站也会中断。

答案2

编辑 hosts 文件(使用 notepad.exe)确实是 Windows 中覆盖主机名解析的最简单、最快捷的方法。命令行替代方案将更加冗长和复杂。

如果您希望它保持临时状态,只需保持 hosts 文件打开,并在进行更改后点击保存即可。

答案3

我过去解决这个问题的一个方法是使用http://xip.io

可以添加 ApacheSeverAlias在您的服务器上执行如下指令:

ServerName foo.com
ServerAlias 1.2.3.4.xip.io 

并且仍然让您的 WordPress 网站为其提供服务(取决于您对 WP 设置的了解程度)。

当然,缺点是这仍然有点令人困惑。至少它所需的技术知识比编辑文件要少hosts。希望这能有所帮助!

相关内容