Server/Windows Server

IIS Reverse Proxy 설정 시 서브 디렉토리로 경로 설정하기.

달빛에취하다 2022. 9. 23. 10:26

http://smime.co.kr  을 http://d-0-b.kr/smime 와 같이 서브 디렉토리(하위 디렉토리)로 Reverse Proxy 설정하는 방법입니다.


# 확인1. - 소스 (smime.co.kr) 의 url 관련 태그들의 url 경로가 상대 경로로 설정되어 있어야 한다.
# 확인2. - 소스 (smime.co.kr) 의 url에서 고정경로(http 등을 포함)로 설정된 경우 in/out bound 를 필요시 설정해야 한다.
# 확인3. - 아래 내용은 기본 설정만을 포함하고 있다.

# 확인4 - 1,2 항의 내용으로 서브 디렉토리로 사용하는 것은 딱히 추천하진 않습니다사용처도 분명히 존재합니다.)

                이런 문제로 되도록이면 서브 도메인으로 사용하시는 걸 추천 드립니다.

 

 

1. 설정 시 유의 사항 (이미지의 생각이 있는 사각틀 참조)

- 보라색 : 대상이 되는 서브 디렉토리 혹은 서브 디렉토리를 포함하는 URL 이며( http://d-0-b.kr/smime/  유무에 주의해 주시면 됩니다.

- 붉은색 : 소스( http://smime.co.kr )가 되는 URL 입니다.

- 인바운드는 http://d-0-b.kr/smime 로 접속하는 경우 match url 의 정규식 패턴에 따라 R0 - 전체 URL, R1 - 첫번째 괄호 (.*) 값을 의미합니다.
아웃바운드는 html 의 특정 태그를 변경하기 위한 용도로 주로 사용되며 위와 동일하게 표현식에 따른 R0, R1, R2는 순서와 동일합니다.

2. 설정 파일 TEXT

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
		<rule name="ReverseProxyInboundRule1" stopProcessing="true">
		<match url="^smime/(.*)" />
			<action type="Rewrite" url="http://smime.co.kr/{R:1}" />
	    </rule>
            </rules>
            <outboundRules>
                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
                    <match filterByTags="A, Area, Base, Form, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://smime.co.kr/(.*)" />
                    <action type="Rewrite" value="http://d-0-b.kr/smime{R:2}" />
                </rule>
                <preConditions>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>