场景如下。
我们有一个 Windows 2003 Web 服务器(oursite.com)为我们的网站提供服务(我知道,很抱歉。)我使用 Centos 服务器为该主网站(oursitelabs.com)提供大量内容。
oursite.com DNS 由 Network Solutions 管理(再次重申,我知道),并且我直接通过 MediaTemple 管理 outsitelabs.com。
我在域根目录中的 Centos 服务器上设置了 Wordpress MU 安装。我希望 oursitelabs.com/media-relations 上的几个博客可以通过 oursite.com/media-relations 访问。我们需要可见的 uri 始终是 oursite.com/media-relations/whatever-the-post-is,即使该区域实际托管在 oursitelabs.com 上。
关于如何设置 DNS/Windows/Centos/Wordpress 以实现这一点,有什么建议吗?
答案1
您需要设置反向代理(以便 oursite.com 上的网络服务器代理 oursitelabs.com 上的内容),或者您可以为 oursite.com 上的这些 URL 设置 302,以便它们重定向到相应的 oursitelabs.com。另一种可能性是使用 oursite.com 上的框架做一些巧妙的事情,以便它“框架化” oursitelabs.com 上的内容。或者做一些有趣的事情,让 oursite.com 页面通过 AJAX 请求 oursitelabs.com 上的内容。每种情况下的效果略有不同,但它们在某种程度上都会起作用。
答案2
如果我理解正确的话,我认为发生这种情况的唯一方法是在 Windows 上的 IIS 下设置反向代理。我不清楚如何在 IIS 中执行此操作,但在 Apache 下,您可以使用 mod_proxy/mod_rewrite(或类似模块)执行此操作。
通过谷歌快速搜索,可以得到以下关于 IIS 的结果......
答案3
如果不添加额外的组件,您所要求的功能实际上并不容易。相反的操作非常简单。将 DNS 条目指向 Centos 服务器并让 Apache 代理 IIS 服务器的请求确实要简单得多。
答案4
我将在该服务器上安装适用于 Windows 的 Apache 2.2,并设置在端口 80 上。然后,我将 IIS 移至另一个端口(81?),并根据每个请求设置 mod_proxy 规则。如果他们请求 /media-relations/,则将请求代理到您的 CentOS/labs 计算机。如果他们请求所有其他内容,则将请求代理到http://本地主机:81/。
IIS 本身似乎有一些可用的选项,例如 ISAPI_Rewrite,但我没有实际使用它们的经验。