题 IIS可以配置为将请求转发到另一个Web服务器吗?


我在一个IIS 6服务器上设置了几个网站,由主机标头区分。

但是,我希望在我的网络上有一个由Linux / Apache服务器提供服务的站点。我是否需要为IIS使用反向代理加载项,或者是否有一种简单的方法可以告诉IIS将所有请求传递给另一台服务器?


77
2017-07-29 13:14






答案:


对于IIS 7.5,Microsoft为此提供了官方模块!

在网站设置中,您将获得“URL重写”图标。

  • 打开它
  • 右键单击“入站规则列表”
  • 选择“添加规则”
  • 选择“反向代理”

在此对话框中,您可以输入要转发到的主机名+端口。添加规则后,打开编辑对话框可提供更多自定义。


79
2018-06-18 07:59



这很好,但原始问题指定了IIS 6,所以我很困惑,IIS 7.5特有的答案被标记为“已接受”。 IIS 6有解决方案吗? - Tim Long
@Tim:你可以使用下面提到的ISAPI重写,但除此之外,我不熟悉IIS6解决方案。 - vdboor
我在Win10机器上遇到了麻烦,我无法安装。这些模块有任何限制吗?是否有必要在MS的服务器操作系统上运行它?谢谢 - fpdragon
请注意,使用此方法反向代理POST请求时出现问题 - Casper Leon Nielsen
@CasperLeonNielsen你能指点我们一些关于潜在POST问题的更多细节吗? - Jens Ehrich


我正在为此目的使用Windows(IIS)的第三方软件,除了URL重写之外,还可以很好地完成这项工作: ISAPI重写

ISAPI Rewrite是一个功能强大的URL   基于常规的操纵引擎   表达式。它的行为大多像   Apache的mod_Rewrite,但是是专门设计的   专门针对微软的互联网   信息服务器(IIS)。   ISAPI Rewrite是一个ISAPI过滤器   用纯C / C ++编写,所以它是   非常快。 ISAPI_Rewrite给出   你有超越自由的自由   标准的URL方案和开发你的   自己的计划。

搜索“代理”。这里是 RewriteProxy规则的文档

还有一个非常相似的开源项目: Ionic的Isapi重写滤镜


17
2017-07-29 13:36



链接到IIRF ProxyPass的doc: cheeso.members.winisp.net/Iirf20Help/html/... - Cheeso
+1 - 这在IIS 6上运行良好。 - Evan Anderson
由于此问题,我无法在Windows 2008 R2 SP1上使用IIRF: iirf.codeplex.com/workitem/32479 - Peter K.


不,不在IIS 6.看看在IIS6服务器前面使用nginx / ubuntu(甚至是Windows上的nginx)作为反向代理。我们不得不使用IIS7.5进行反向代理功能


0
2018-02-26 07:49





这个 Microsoft知识库文章 应该帮助回答这个请求。

将请求重定向到另一个网站或目录的过程:

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

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

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

  4. 在“重定向到”框中,键入目标目录或网站的URL。


-3
2017-07-29 13:21



鉴于海报问题上的“反向代理”标签,我猜他正在寻找反向代理功能,而不是HTTP重定向。 - Evan Anderson
另一台服务器不公开,所以遗憾的是这不起作用 - Daniel O
这是完全错误的。 - tacos_tacos_tacos