ISapi Rewrite 允许 Apache 和 IIS 一起运行

ISapi Rewrite 允许 Apache 和 IIS 一起运行

好的,我的 IIS 在端口 80 上运行,而 Apache 目前在端口 19049 上运行。现在外部端口已打开,允许超过 80 的流量,但我希望能够从外部访问 Apache 页面,而不必打开该端口,或在 URL 中指定端口。我找到的解决方案是设置 ISAPI 重写过滤器http://iirf.codeplex.com/。这个想法是,从外部我可能会访问 www.mydomain.com/Apache,而 isapi 过滤器会在内部将请求(条件是它是 /Apache)发送到 //localhost:19049 页面并来回路由所有流量(显然所有其他子路径都已正确映射)。

问题是,虽然我可以让基本的重写工作,即重写请求从 page1.htm 到 page2.htm 或将页面从 page1.htm 重定向到 www.google.com。问题是重写规则不允许将请求发送到另一个端口,而重定向规则实际上只是一个 301 代码(因此显然 //localhost:19049 在外部不起作用)。

有没有人对此有真正的解决方案,传送一个简单的请求肯定不应该这么困难。

答案1

如果你在主机之外重写,例如http://x/->http://x:999/,你问的是客户重定向,这意味着它将显示在客户端。您需要一个代理服务器来执行此操作。尝试 Squid、Varnish、mod_proxy。

答案2

我不使用该过滤器。但我认为它不是您需要的解决方案。您不需要重定向或重写。您需要反向代理。有适用于 iis 和 apache 的解决方案。我可以保证 apachemod_proxy

答案3

IIRF 有一个代理通行证指令,它将执行您想要的操作。您需要 IIRF v2.0。

相关内容