如何让一些虚拟文件夹由 iis 提供服务而其他虚拟文件夹由 apache 提供服务?

如何让一些虚拟文件夹由 iis 提供服务而其他虚拟文件夹由 apache 提供服务?

我有一个用 PHP 编写的网站,它由安装在 Linux 上的 Apache 提供服务。也就是说,它的 URL 是example.com,它有子文件夹audiogamesphoto,因此用户指向它时为example.com/photo

现在,我正在 ASP.Net 中编写新功能(例如,观看电影的能力),并希望用户可以访问它example.com/video。 而为其提供服务的 IIS 安装在另一台服务器上,该服务器在互联网上不可见(只有 Apache 可以直接访问互联网),但可以通过内联网从 apache 轻松访问它。

用户会话并不重要!

我应该如何配置才能有效工作?我可能需要安装更多软件吗?

我发布了我的解决方案,据我所知寻路者意思,但如果有的话,我愿意听取其他建议。

答案1

您已经标记了问题“反向代理”,因此您说的很正确:)

我认为 Apache 是您在 :80 上针对您的公共 IP 的默认侦听器?如果是这种情况,那么您将需要配置 Apache 的mod_proxy模块,并将其配置为重写example.com/videoIISSERVER/video

如果你的默认监听器是 IIS,那么思路是一样的,但是你需要使用商业产品,比如ISAPI 重写去做这个。

答案2

是的,Apache 是 80 端口上公共 IP 的默认侦听器。我在虚拟主机中使用ProxyPassProxyPassReverse添加了以下几行:

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /video http://iis_ip:iis_port
ProxyPassReverse /video http://iis_ip:iis_port

但我怀疑我是否选择了最佳解决方案。我看到的替代方案之一是安装 ngin 并将其设为默认。然后将请求从 nginx 转发到 Apacge 和 IIS。也许还有其他变体,所以我暂时不会关闭问题。

答案3

我是新来的,所以我不能投票赞成 Farseeker 的答案。但这确实有用 - Apache reverseproxy你想要什么?你可以使用许多不同的产品来实现这一点,但考虑到你所说的,这可能是最好的答案。

相关内容