Chi*_*mar 7 iis-7 reverse-proxy url-rewrite-module
我正在尝试使用 IIS 7.5 设置反向代理。我想要一个与特定 URL 模式匹配的传入请求由 Tomcat 提供服务。我已经使用这里的教程来配置它。
我的设置如下:
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url=".*/(Locations|FacetedSearch|LocationPage)/.*" />
<action type="Rewrite" url="http://search.xxx.com/{R:1}" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" replace="true" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
<match filterByTags="A, Form, Img" pattern="^http(s)?://search.xxx.com/(.*)" />
<action type="Rewrite" value="http{R:1}://dev.xxx.com/{R:2}" />
</rule>
<preConditions>
<preCondition name="ResponseIsHtml1">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
<tracing>
Run Code Online (Sandbox Code Playgroud)
HTTP 错误 500.52 - URL 重写模块错误。当 HTTP 响应的内容被编码(“deflate”)时,不能应用出站重写规则。
小智 6
我也刚刚遇到这个问题,我发现这个解决方案很有帮助:https ://www.saotn.org/iis-outbound-rules-with-gzip-compression/
基本上,在入站请求中,HTTP_ACCEPT_ENCODING 标头被存储到临时标头中,然后根据出站重写规则恢复。
如果链接失效,请按以下步骤操作:
Run Code Online (Sandbox Code Playgroud)HTTP_ACCEPT_ENCODING HTTP_X_ORIGINAL_ACCEPT_ENCODING
Run Code Online (Sandbox Code Playgroud)Server Variable Name: HTTP_X_ORIGINAL_ACCEPT_ENCODING Value: {HTTP_ACCEPT_ENCODING} Server Variable Name: HTTP_ACCEPT_ENCODING Value: ""
如果您只需要在单个站点上使用此功能,您可以在站点级别而不是服务器级别添加前提条件。
小智 0
将其添加到您的网络配置中
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
Run Code Online (Sandbox Code Playgroud)
或者在iis中禁用动态压缩
归档时间: |
|
查看次数: |
21771 次 |
最近记录: |