在同一台Windows Server上运行IIS和Apache

我有一个Windows 2003服务器,我运行它的IIS。 我想在服务器上运行php,所以我可以托pipe一个drupal站点。 我希望使用Apache来托pipe这个站点,这样我就可以拥有干净的URL。 可以运行IIS和Apache吗? 会有什么build议吗?

如果IIS和Apache位于不同的IP地址,则可以让IIS和Apache位于同一个端口上。 有一些特殊的configuration你需要为IIS做,因为它通常绑定到所有IP的所有端口。 这里是如何configurationIIS只侦听某些端口/ IP的文档: http : //support.microsoft.com/kb/813368/EN-US/

如果你想同时运行它们,并让它们都显示在同一个端口上的请求,那么你可以使用一个叫做反向代理的东西。

比方说,你希望一切都通过Apache运行,除了几个你想通过IIS运行的URL。

你可以设置Apache来监听:80(正常的HTTPstream量),并设置IIS来听别的东西(比如:81)。

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

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

请注意,将您的IIS作为您的:80服务器和Apache作为您的:81服务器可能会更难configuration。 在这里看到这个SF的基本操作方法。

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

为了让您的url不显示端口,您可以在IIS中创buildredirect。 使用这些说明:

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

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

  3. 在此源的内容应来自,请单击redirect到一个URL。

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

你将不能让他们都在同一个端口上听,否则你应该没问题。

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