2012-08-09 3 views
1

나는 heckuva 시간이 작업을 얻는 데에 역방향 프록시를 IIS. 간단한 테스트로 아파치

http://learn.iis.net/page.aspx/659/reverse-proxy-with-url-rewrite-v2-and-application-request-routing/

, 나는 별도의 동일한 디렉토리에 내 미디어 디렉토리에서 아무것도 (CSS, 이미지 등)에 대한 프록시 요청에 노력하고있어 나는에 명시된 지침에 따랐습니다 숙주.

<rewrite> 
    <rules> 
     <rule name="ReverseProxyInboundRule1" stopProcessing="true"> 
      <match url="^(media/.*)" /> 
      <conditions> 
       <add input="{CACHE_URL}" pattern="^(https?)://" /> 
      </conditions> 
      <action type="Rewrite" url="{C:1}://mystatichost/{R:1}" /> 
     </rule> 
    </rules> 
</rewrite> 

을 그리고 내 Default.master에 그래서 같은 이미지 태그를 가지고 : 다음은 구성이다

<img src="/media/img/homepage.jpg" /> 

하지만 그 이미지 요청에 대해 404 오류가 계속. 파일 /media/img/homepage.jpgmystatichost에 있습니다. 나는 무엇을 놓치고 오해 하는가?

+0

이 기술로 역방향 프록시를 사용할 수 없었습니다. 너 혹시 그걸 관리 했니? URL 리디렉션은 작동하지만 리버스/리버스 프록시는 작동하지 않습니다. –

답변

0

거기 정규 표현식과 약간 이상한 뭔가가 날 것으로 보인다.

대신 <match url="^(media/.*)" />

, 당신은 <match url="(media/.*)" />를 사용한다. 그렇지 않으면 성냥은 URL 문자열의 시작 부분에서만 시작되며 항상 작동하기 때문에 http으로 시작합니다.

그래서, 짧게 잘라하려면 다음을 수행하십시오 그 나던 작업하는 경우

<rewrite> 
    <rules> 
    <rule name="ReverseProxyInboundRule1" stopProcessing="true"> 
     <match url="(media/.*)" /> 
     <conditions> 
      <add input="{CACHE_URL}" pattern="^(https?)://" /> 
     </conditions> 
     <action type="Rewrite" url="{C:1}://mystatichost/{R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 

을, 당신은 HTTPS가 mystatichost하는 모든 요청에 ​​대해 필요합니까?

은 아마도 당신은 <conditions> 부분을 제거하고 <action type="Rewrite" url="http://mystatichost/{R:1}" />을 설정할 수 있습니다.

행운을 빈다.