https://www.saotn.org/iis-outbound-rules-with-gzip-compression/
위 링크는 출처.
역방향 프록시를 적용할 사이트의 URL Rewrite 에서 서버 변수에
- HTTP_ACCEPT_ENCODING
- HTTP_X_ORIGINAL_ACCEPT_ENCODING
를 추가해야 한다.
추가한 다음엔 해당 사이트의 룰에 위 변수를 실제로 추가해야 하는데, web.config을 이용해 아래처럼 추가하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<rewrite> <rules> <rule name="wordpress" patternSyntax="Wildcard"> <match url="*"/> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> </conditions> <serverVariables> <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" /> <set name="HTTP_ACCEPT_ENCODING" value=""/> </serverVariables> <action type="Rewrite" url="index.php"/> </rule> </rules> <outboundRules rewriteBeforeCache="true"> <rule name="RestoreAcceptEncoding" preCondition="NeedsRestoringAcceptEncoding"> <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" /> <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" /> </rule> <preConditions> <preCondition name="NeedsRestoringAcceptEncoding"> <add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" /> </preCondition> </preConditions> </outboundRules> </rewrite> |
실제로 추가해야 하는 부분은 <serverVariables>…</serverVariables> 부분, <outboundRules …> 부분, <rule name = “RestoreAcceptEncoding” …>…</rule> 부분, 그리고 <preCondition name=”NeedsRestoringAcceptEncoding”>…</preCondition> 부분이다.
역방향 프록시를 쓰면 IIS로 바인딩을 처리하고 VirtualBox 등으로 구축한 서버로 포트포워딩을 시켜 리눅스 서버에서 웹 서비스를 처리하는 등의 솔루션을 이용할 수 있어 좋다.