본문 바로가기

Server

IIS 7.5 에서 URL 재작성, 역방향 프록시를 통한 Wildcard Sub Domain 설정

  • 요약

1. 설치 
  - URL재작성이 설치되어 있어야 한다.
    경로 : https://www.iis.net/downloads/microsoft/url-rewrite
           Download URL Rewrite Module 2.1 > Korean > x64 다운로드
    file : rewrite_amd64_ko-KR.msi
  - 역방향 프록시가 설치되어 있어야 한다.
    경로 : https://www.microsoft.com/en-us/download/details.aspx?id=47333
           Microsoft Application Request Routing 3.0 (x64) 다운로드
    file : requestRouter_amd64.msi

2. IIS 설정
  IIS 10.0 으로 사용하지 못하는 경우 사용하는 방법입니다.
  - * : 80에 바인드하고 호스트 이름이 없는 대표 사이트를 생성 : IIS "default" website
  - * : 8091에 바인드하고 호스트 이름이 없는 사이트를 생성.: IIS "m.test.co.kr" website
   
3. 방화벽 설정 
  inbound. outbound 내 8091 포트 오픈

# 참조


  • applicationHost.config

# 위치 : C:\Windows\System32\inetsrv\config
# proxy enabled 설정 추가
# 서버 레벨에서의 
       <diskCache>
            <compression>
                <add mimeType="text/*" enabled="true" />
                <add mimeType="message/*" enabled="true" />
                <add mimeType="application/x-javascript" enabled="true" />
                <add mimeType="application/javascript" enabled="true" />
            </compression>
        </diskCache>
        <proxy enabled="true" />

    </system.webServer>

  • web.Config(이름이 없는 대표 사이트)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <rewrite>
            <rules>
                <rule name="m" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://{HTTP_HOST}:8091/{R:0}"/>
                    <conditions>
                        <add input="{SERVER_NAME}" pattern="^(.*)\.m\.test\.co\.kr$" />
                    </conditions>
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

  • 확인

1. http://localhost/serverinfo.asp
2. http://localhost:8091/serverinfo.asp
3. http://test.m.test.co.kr/serverinfo.asp
   2.번과 동일한 결과 나오면 성공

  • serverinfo.asp

<%
Response.write(request("server_protocol") & "
")
Dim key
For each key in Request.ServerVariables
Response.Write key &" = "& Request.ServerVariables(key) &"
"
Next
%>