是否可以在单个域名但 2 个不同的 IP 上托管 2 个网站?

是否可以在单个域名但 2 个不同的 IP 上托管 2 个网站?

我有服务器 A,它托管www.mysite.com

我想在服务器 B 上创建并托管一个网站,但将其配置为:www.mysite.com/theSiteAtServerB

TheSiteAtServerB 是与 www.mysite.com 完全不同的网站,位于完全不同的服务器上,但客户希望使用www.mysite.com并在相同的url下为TheSiteServerB提供内容。

这有可能吗?DNS 配置?还是通过一些 Apache 魔法?

谢谢你!

编辑1:

为了澄清起见,我想在不重定向或重写 URL 的情况下实现这一点。

http://www.mysite.com/&http://www.mysite.com/siteAtServerB从技术上讲,它们是独立的网站,具有不同的 IP 地址。我想知道是否可以修改 DNS,以便我可以指向 www.mysite.com--------------> ServerA(当前) www.mysite.com/theSiteAtServerB--------------> 服务器 B


编辑 2** 为了确保我理解流程,它是否可以像这样工作:

1- Web请求进入服务器A

2- mod_rewrite 根据匹配的规则处理请求

3- mod_proxy 从原始服务器获取内容并将其返回到响应

从安全性角度来说,大部分锁定是否仅仅来自于确定 mod_proxy 的正则表达式?基于此:http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#access,我认为我还需要设置代理访问?但如果该网站是公共网站,我应该在代理访问块中输入什么,我应该将其设置为允许 *

答案1

你想要实现的目标是通过使用mod_proxy,该功能通常不适用于共享主机环境,因为如果锁定不当,可能会引发相当严重的安全问题。如果操作不当,您将为恶意人士提供一个开放代理,让他们使用服务器的 IP 地址浏览互联网。

如果您有对 Web 服务器的完全访问权限,则可以打开 mod_proxy。这将使用 mod_rewrite 设置正确的代理:

RewriteRule ^/SiteAtServerB/(.*)      http://serverb/site/$1     [P,L]

您提供的正则表达式越精确,您免受恶意商业侵害的保护就越好。

这会实现您想要的效果。ServerB 将看到来自 ServerA 的 IP 地址(无论如何是其中一个)的请求,而客户端将只看到一个不会改变的 URL。

答案2

“Apache magic” 的意思是重定向。

或者,正如这里所建议的,代理。

客户端计算机只会向 DNS 询问域名,而 URL 的任何其他部分都不会影响其询问的内容(技术上,可能涉及 SRV 记录,但这些记录将根据域名剩余的信息进行查询!)。因此 DNS 无法知道将您发送到哪里。

如果您想了解详细信息,我建议您设置 wireshark,开始捕获,打开网络浏览器及其中任何您有一段时间未访问过的网站,停止捕获,并查看幕后工作原理......

答案3

您可能能够使用全局负载平衡器来执行此操作(因此 mysite.com 解析为 LB,然后根据需要重定向到 serverA 或 serverB),具体取决于您的预算和基础设施,并且您的托管服务提供商可能会提供帮助。

相关内容