如何让 IIS 和 apache 共享相同的 URL

如何让 IIS 和 apache 共享相同的 URL

我有 2 个 Web 服务器:一个运行 apache 的 Linux 服务器和一个运行 IIS 的 Windows 服务器。我可以让两个服务器共享相同的 URL 和子域吗?例如,我可以让 http:// www.mysite.com/iis/ 从 IIS 运行,让 http:// www.mysite.com/apache/ 从 apache 运行吗?我不想使用子域来实现这一点。

答案1

如果 Apache 是两者中的主 Web 服务器(即,它直接响应 www.mysite.com 指向的地址上的端口 80),则可以mod_proxy在 Apache 中使用将请求转发到 IIS 服务。http://www.mysite.com/iis/

另一种选择是,不将 Apache 或 IIS 作为标准端口上的主要服务,而是使用专用的反向代理,配置为根据需要将请求转发到 IIS 和 Apache。

答案2

一个选项是将 www.mysite.com 的所有内容都转到 apache,然后使用mod_proxy将 www.mysite.com/iis/ 的所有内容转发到您的 IIS 服务器。

答案3

在标准设置中,不是的。如果您在同一台服务器上运行 IIS 和 Apache,那么它们需要位于不同的端口上,只有其中一个可以使用端口 80,因此另一个的 URL 必须包含端口号。

也许有某种方法可以使用 Mod 代理之类的东西,如建议的那样将某些 URL 的请求转交给其他服务器,但您仍然会遇到 URL 需要包含端口号的问题,除非 IIS 位于另一台计算机上。您需要指定一台服务器作为主服务器并监听端口 80,并处理将所有请求转交给其他服务器。

答案4

如果不让其中一台服务器成为这两个 URL 的所有者,您就无法实现这一点。然后,您将使用默认服务器(我将称之为),并发出重定向到另一个 URL,该 URL 将解析为另一台服务器的 IP 地址。

例如:

Linux 服务器 IP1 = www.myurl.com,其中 IP1 是显示的 url 的 IP 地址。

在 httpd.conf 文件中,您可以放置​​一个重定向指令来匹配 www.myurl.com/iis 中的任何内容,并将其发送到 www.myotherurl.com,后者将解析为另一台服务器的 IP。然后 www.myurl.com/apache 就可以指向您选择的本地目录。

IIS 服务器 IP2 = www.myotherurl.com,其中 IP2 是另一个 URL 的 IP 地址,如图所示。

重写规则可以是这样的:

RewriteEngine 在 RewriteRule ^iis/?$ 上http://www.myotherurl.com

顺便说一句,对于某些事情,我们会做一些类似的事情,将 HTTP 流量重定向到我们的 HTTPS 站点......例如,如果您输入 webmail.mycompany.com,我们会重定向到相同的 https。

RewriteEngine 在 RewriteCond %{SERVER_PORT} 上 !^443$ RewriteRule (.*)https://webmail.mycompany.corp/[右=301,左]

相关内容