我有服务器甲主办www.mysite.com
我想在服务器B上创build和托pipe一个站点,但将其configuration为: www.mysite.com/theSiteAtServerB
TheSiteAtServerB是一个与www.mysite.com完全不同的网站,它位于一个完全不同的服务器上,但客户端希望使用www.mysite.com并在同一url下为TheSiteServerB提供内容。
这是可能吗? DNSconfiguration? 还是通过一些Apache的魔法?
谢谢!
编辑1:
为了澄清,我想实现这个没有redirect或重写url。
http://www.mysite.com/&http://www.mysite.com/siteAtServerB是独立的网站>技术上与不同的IP地址我想知道是否有可能修改DNS,以便我可以指向www.mysite。 ServerA(当前) www.mysite.com/theSiteAtServerB ————–> ServerB
编辑2 **为了确保我理解stream程,是否会像这样工作:
1- Web请求进入服务器A
2 mod_rewrite根据匹配的规则处理请求
3 mod_proxy从原始服务器获取内容并将其返回给响应
在安全性方面,大部分的locking是来自于正确的mod_proxy的正则expression式? 基于这个: http : //httpd.apache.org/docs/2.0/mod/mod_proxy.html#access ,我假设>我还需要设置代理访问? 但是,如果该网站是一个公共站点,我将在代理访问块中放置什么,我将它设置为允许*
你想要完成的是通过使用mod_proxy来实现, mod_proxy通常不能用于共享主机环境,因为如果没有被locking的话,它可以允许很严重的安全问题。 如果你没有做到这一点,你会提供一个开放的代理恶意的人上网使用服务器的IP地址。
如果你有完整的访问Web服务器,你可以打开mod_proxy。 这使用mod_rewrite来设置正确的代理:
RewriteRule ^/SiteAtServerB/(.*) http://serverb/site/$1 [P,L]
你可以提供更正确的正则expression式,更好的保护你从邪恶的业务。
这将做你正在寻找的东西。 ServerB将会看到一个来自ServerA的IP地址的请求(无论如何),客户端只会看到一个不会改变的URL。
“Apache魔术”意味着redirect。
或者,正如这里所build议的,代理。
客户端计算机只会询问DNS的域名,而URL的任何部分都不会影响它( 技术上说 ,SRVlogging可能会涉及到,但这些将根据域名左侧的信息进行查询!)。 所以DNS不知道在哪里发送给你。
如果你想了解细节,可以build议你设置wireshark,开始捕捉,打开一个网页浏览器,以及任何你没有访问过的站点,停止捕捉,看看幕后的情况。 。
你可以用全局的负载平衡器(这样mysite.comparsing到LB,然后根据你的预算和基础设施redirect到serverA或serverB),你的托pipe服务提供商可以帮助你。