2013-01-08 33 views
3

我正在嘗試設置IIS 7.5的反向代理。我想要一個匹配特定URL模式的傳入請求由Tomcat提供。我已經在這裏使用這個教程來配置它。HTTP錯誤500.52 - URL重寫模塊錯誤。

http://www.iis.net/learn/extensions/url-rewrite-module/reverse-proxy-with-url-rewrite-v2-and-application-request-routing

我的設置如下:

<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> 

HTTP錯誤500.52 - URL重寫模塊錯誤。 當HTTP響應的內容被編碼時(「deflate」),不能應用出站重寫規則。

回答

0

添加到您的web配置

<serverVariables> 
    <set name="HTTP_ACCEPT_ENCODING" value="" />   
</serverVariables> 

或禁用動態壓縮在IIS

+0

什麼是「本」禁用動態和靜態內容壓縮?請你補充一點,請! – Cleb

+0

嗯:)檢查了這一點:http://www.wrapcode.com/infrastructure/configure-reverse-proxy-with-url-rewrite-and-arr-for-iis/ –

+0

它幫助我添加註冊添加HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ InetStp \快退 儀式/ v LogRewrittenUrlEnabled /噸REG_DWORD/d 0 我測試註冊,你將需要允許服務器變量在以下:HTTP_ACCEPT_ENCODING,HTTP_CUST,HTTP_HOST,HTTP_MAX_FORWARDS,HTTP_X_ORIGINAL_SERVER_POST,HTTPS –

0

發現在IIS中「壓縮」,然後刪除動態內容壓縮和靜態內容的壓縮。

0

從負責反向代理請求的站點禁用動態和靜態內容壓縮以及正在代理的站點爲我解決了此錯誤。

說得換句話說 - 如果服務器X的請求路由到服務器Y,然後在兩個服務器X的網站和Y.