如何将Windows Web服务器子目录永久指向Centos服务器子目录?

这是场景。

我们有一个Windows 2003 Web服务器(oursite.com),它服务于我们的网站(我知道,对不起)。我使用一个Centos服务器来为主站点(oursitelabs.com)提供大量内容。

oursite.com的DNS由Network Solutionspipe理(我知道),我通过MediaTemple直接pipe理outsitelabs.com。

我已经在域根目录下的Centos服务器上安装了Wordpress MU安装程序。 例如,我希望有几个博客可以在oursite.com/media-relations访问。 即使该地区是在oursitelabs.com上托pipe的,我们也需要可见的uris始终为oursite.com/media-relations/whatever-the-post-is。

任何关于如何设置DNS / Windows / Centos / WordPress的build议,使这种情况发生?

你需要设置一个反向代理服务器(因此oursite.com上的web服务器将代理来自oursitelabs.com的内容),或者你可以为oursite.com上的这些URL设置一个302,以便它们被redirect到适当的oursitelabs.com 。 另一种可能性就是在oursite.com上用框架做一些棘手的事情,这样就可以从“oursitelabs.com”中“框起”内容。 或者通过AJAX从oursitelabs.com上获得oursite.com网页的内容请求。 每种情况下的效果都略有不同,但都会在一定程度上起作用。

如果我正确理解你的情况,我发现这种情况发生的唯一方法就是如果你在Windows下的IIS下设置一个反向代理。 我没有很多的细节,如何在IIS中做到这一点,但在Apache下,你可以用mod_proxy / mod_rewrite(或类似的模块)来做到这一点。

快速谷歌search为IIS提出以下…

http://code.msdn.microsoft.com/urlrewriter

没有添加额外的组件,你所要求的不是很容易。 反过来很容易。 将DNS条目指向Centos服务器并使Apache代理IIS服务器的请求确实会更简单。

你需要这个IIS的等价物:

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

我将在该服务器上安装用于Windows的Apache 2.2,在端口80上设置。然后我将IIS移动到另一个端口(81?),并基于每个请求设置mod_proxy规则。 如果他们要求/ media-relations /,那么就把请求代理给你的CentOS / labs机器。 如果他们请求所有其他请求,请将请求代理到http:// localhost:81 / 。

似乎有像ISAPI_Rewrite几个选项可用于IIS本身,但我没有任何实际的使用经验。