反向代理子域到IIS7上的子文件夹

我正在尝试在我们公司实施一个Owncloud系统。 我拥有一个位于防火墙后面的内部networking服务器上的Owncloud系统。 通过导航到servername.company.co.nz/owncloud我可以在内部访问安装

我们有一个面向公众的IISnetworking服务器(SBS 2012)。 我想用它作为云安装的反向代理。 我已经阅读了一些关于如何在IIS上使用URL重写和ARR来实现这个function的文章和教程 – 特别是这个看起来是一个很好的开始: 基于域名主机的IIS 7反向代理服务器?

但到目前为止,我还没有能够创build任何反向代理规则的工作。

基本上,我想一个子域cloud.company.co.nz反向代理服务器的内部networking服务器pathserver.company.co.nz/owncloud一直未能弄清楚如何实现这一点。

我目前有一个新的网站在IIS服务器上绑定到cloud.company.co.nz主机名,但这是我所能做到的,而不用敲开我们的Exchange Web服务。

请记住我是一个IIS新手。 任何帮助在这个阶段都非常受欢迎。

编辑1:

根据@ jotap的build议,我的web.config现在看起来像这样。 但是,我得到的只是一个503错误。 任何想法,为什么我会得到这个? 另外,我应该在哪里寻找日志等方面的线索?

干杯

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="ReverseProxyInboundRule1" enabled="false" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://1.2.3.4/owncloud{R:1}" /> </rule> </rules> <outboundRules> <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" enabled="false"> <match filterByTags="A, Form, Img" pattern="^http(s)?://1.2.3.4/owncloud/(.*)" /> <action type="Rewrite" value="http{R:1}://cloud.company.co.nz/{R:2}" /> </rule> <preConditions> <preCondition name="ResponseIsHtml1"> <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> </preCondition> </preConditions> </outboundRules> </rewrite> </system.webServer> </configuration>

当涉及到IIS和ARR的反向代理时,恶魔是详细的,实现这一目标的基本步骤是:

  • 安装ARR和URLRewrite
  • 为反向代理configurationARR:IIS的服务器级别 – >应用程序请求路由高速caching – >服务器代理设置
    • 应该让你去的最基本的设置是“启用代理”,并保持原样。
  • configuration站点以将所有请求代理到新主机。 这可以通过GUI完成,或者你可以使用这个web.config让你去(把它放在正在做代理的网站的根目录):

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="inbound"> <match url="(.*)" /> <action type="Rewrite" url="http://server.company.co.nz/owncloud/{R:0}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

不知道你是否熟悉正则expression式,基本上是这样说的:“在主机名后面捕获URL,并向server.company.co.nz发送请求,将捕获的URL加到owncloud子目录的末尾”。

请注意,如果后端网站正在压缩内容,您可能会遇到问题(您将得到500错误)。 此外,如果它可以工作,你可能会发现所有的图像和CSS都被破坏了,在这种情况下,你也必须configuration出站重写,但这取决于你的后端和规则是针对你可能有的问题看你如何去。 你可能不得不做另外一些调整(或更多)才能正确使用。