在同一 Windows Server 上运行 IIS 和 Apache

在同一 Windows Server 上运行 IIS 和 Apache

我有一台 Windows 2003 服务器,并在其上运行 IIS。我想在服务器上运行 php,以便可以托管 drupal 站点。我希望使用 apache 托管站点,以便拥有干净的 URL。是否可以同时运行 IIS 和 Apache?您有什么建议吗?

答案1

您可以让 IIS 和 Apache 位于同一个端口上 - 如果它们位于不同的 IP 地址上。但是您需要对 IIS 进行一些特殊配置,因为它通常会将所有端口绑定到所有 IP。以下是有关如何配置 IIS 以仅侦听某些端口/IP 的文档: http://support.microsoft.com/kb/813368/EN-US/

答案2

如果你想同时运行它们,并让它们同时存在出现响应同一端口上的请求,那么您可以使用称为反向代理的东西。

假设您希望所有内容都通过 Apache 运行,但有几个 URL 除外,您希望通过 IIS 运行。

您可以设置 Apache 来监听:80(正常 HTTP 流量),并设置 IIS 来监听其他内容(例如:81)。

除 /myIISApp/ 之外的所有内容都将通过 Apache 运行,而 /myIISApp/ 将通过 IIS 运行。

然后,你将设置你的反向代理捕获任何与 /myIISApp/ 匹配的 URL 并将其转发到 :81/myIISApp/ (或 IIS 计算机的任何 URL)。

请注意,将 IIS 用作 :80 服务器并将 Apache 用作 :81 服务器可能会更难配置。请参阅这篇 SF 帖子在这里了解基本操作方法。

答案3

我目前就是这么做的。但是,squillman 是正确的。您需要让 Apache 监听与 IIS 不同的端口。我对 IIS 使用 80,对 Apache 使用 81。

要使您的 URL 不带端口显示,您可以在 IIS 中创建重定向。请使用以下说明:

  1. 在 IIS 管理器中,展开本地计算机,右键单击要重定向的网站或目录,然后单击“属性”。

  2. 单击主目录、虚拟目录或目录选项卡。

  3. 在“此来源的内容应来自”下,单击“重定向到 URL”。

  4. 在“重定向到”框中,键入目标目录或网站的 URL。例如,要将 Catalog 目录中的所有文件请求重定向到 NewCatalog 目录,请键入 /NewCatalog。

答案4

您将无法让它们都监听相同的端口,否则您应该可以同时运行它们。

编辑(感谢 MattB):
除非您让它们在不同的 IP 地址上运行。然后您可以将它们绑定到每个地址上的相同端口。

相关内容