我想在我们的 Apache Web 服务器中设置一个特殊配置。我想根据用户的 IP 地址向他们显示网站。
我们计划升级我们的网站。升级期间,我们将建立一个维护网站:这样所有连接到我们网站的用户都将访问此网站。
有 200 个网站受到升级影响,所以我不想为每个网站更改 apache 设置。
为了测试升级,我需要设置 apache 以仅允许我的 IP 地址访问请求的站点。如果我的 IP 地址是 abcd,并且我请求 test.com,我希望看到它。但所有其他具有不同 IP 地址的用户即使搜索 test.com 也应该可以访问维护站点。
我们的网络服务器托管在办公室外(ovh.com 法国)。测试人员是我们办公室的开发人员和我。我们可以选择一些网站并启用它们进行测试,我们在每个网站中实施 IP 限制:想法是在这些网站上,如果访问者的 IP 地址与我们办公室的 IP 地址不同,我们会将该访问者重定向到我们的维护网站,否则我们会显示该网站。
有没有办法做到这一点?
谢谢。
答案1
我想你可能会发现供测试用新版本的网站使用单独的虚拟主机,并使用不同的 ServerName 指令(例如 testing.yourdomain.com)将为您提供比巧妙使用 IP 地址更多的灵活性。然后,当准备上线时,您只需将 ServerName 更改为实时服务器名称即可。
但是,能够为不同的 IP 地址提供不同的内容是一件很有用的事情,特别是当您想通过不同的访问者测试不同版本网站的性能,或者根据从 IP 地址派生的地理位置提供内容时。
如果这就是你想要的,那么你可以忽略我的回答。但是如果你只需要让少数人访问测试站点直到测试完成,那么请尽可能保持简单。
答案2
您的服务器位于哪里?如果它与测试器位于同一位置(即网络位置),并且具有本地 IP 地址和公共 IP 地址,那么您可以让服务器侦听与测试器处于同一范围内的本地 IP 地址,并使用本地 DNS 将实时站点解析为该 IP 地址。
为此,您仍然需要编辑您的虚拟主机,但坦率地说,根据您提供的信息,我看不出有任何方法可以避免这种情况。
答案3
设置一台单独的机器(虚拟的?)来提供当前内容,并将所有新流量指向该机器。然后用新内容升级您的另一台服务器。当您对新内容感到满意时,将所有流量指向主服务器。这还有一个额外的好处,就是不需要维护页面。