[Question]


Azure App Serivce에서 여러 Custom Domain 등록하여 사용 중인데, 1개의 도메인으로 Redirection 설정을 하고 싶습니다.


[Answer]


App Service에서 Custom Domain 사용 시 여러 도메인으로 App Serivce의 웹페이지에 접근 가능합니다.

위 그림처럼 여러 Custom Domain을 등록하여 Azure App Service에 접근 가능합니다.


도메인 관리를 위해 1개의 도메인으로 Redirection 설정이 필요하다면,

App Service에서 기본 제공되는 기능은 없으며, 대안으로 다음과 같습니다.


    -  Web Config에 적용

    -  Azure Application Gateway, Azure Front Door 사용


위 대안은 App Service의 Runtime Stack 및 비용에 따라 달라질 수 있습니다.





#  App Service의 Web Config에 적용


위 방법은 리소스 생성 없이 설정 가능한 방법으로, 추가 비용이 들어가지 않는 방법이며,

Web Config 사용하여 Web 설정을 진행한 경우 App Service 재시작 등 작업에 의해 Config 파일 소멸없이 유지 됩니다.


Web Config에 설정하는 방법은 OS와 Runtime Stack 별로 상이합니다.


OS 별로 Web을 먼저 확인하는 방법을 알아보겠습니다.

Linux 및 Windows 모두 Kudu를 통해 확인 가능합니다.


       - "App Service"의 "개발도구" - "고급 도구"에서 "이동"을 선택하여 Kudu로 이동한다.

         


       - Linux

         SSH에 연결하여 명령어를 통해 실행중인 프로세스를 확인한다.

         


       - Windows

         Powershell에서 명령어를 통해 실행중인 프로세스를 확인한다. 

         



위에서 Web 기반으로 OS 별로 Redirection 설정 방법은 다음과 같습니다.


먼저 Windows OS의 경우 Runtime Stack과 관계없이 IIS(프로세스: w3wp)로 Web이 통일되어 있습니다.

따라서, Web 설정에서 적용 시에 디렉토리 wwwroot 하위에 web.config 파일 생성하여 IIS의 Redirection 설정에 맞춰 적용하면 됩니다.

       참고 URL: https://docs.microsoft.com/ko-kr/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module#creating-a-redirect-rule 

# web.config 예시

<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <system.webServer>

    <rewrite>

      <rules>

        <rule name="Redirect rquests to default azure websites domain" patternSyntax="Wildcard" stopProcessing="true">

          <match url="*" />  

            <conditions>

              <add input="{HTTP_HOST}" pattern="[사용중인 도메인 입력]" />

            </conditions>

            <action type="Redirect" url="https://[사용중인 도메인 입력]/{R:0}" />  

        </rule>

      </rules>

    </rewrite>

  </system.webServer>

</configuration>



Linux의 경우 Runtime Stack 별로 Web이 상이하게 구성되어 있습니다.

따라서, 구성 되어있는 Web 확인 후에 Config 파일 생성하여 Redirection 설정 진행해야 합니다. 


Runtime Stack 별로 하단의 URL을 통해 App Service의 Web Config 설정 방법 확인 후 Redirection 설정 진행하면 됩니다.

        참고 URL: https://docs.microsoft.com/ko-kr/azure/app-service/configure-common





# Azure Application Gateway, Azure Front Door 사용


위 방법은 App Serivce 앞단에 리소스를 추가하여 Redirection 설정하는 방법입니다.


위 그림과 같이 Azure Application Gateway를 이용하여 URL Context Path 기능을 통해 Redirection 설정이 가능합니다.


먼저, Azure Application Gateway 및 Azure Front Door 추가하는 방법 입니다.

       - Azure Application Gateway 생성: https://docs.microsoft.com/ko-kr/azure/application-gateway/quick-create-portal

       - Azure Front Door 생성: https://docs.microsoft.com/ko-kr/azure/frontdoor/quickstart-create-front-door


위 내용을 참고하여 리소스 추가 이후, Redirection을 위한 URL Context Path 기능 설정 방법 입니다.

       - Azure Application Gateway: https://docs.microsoft.com/ko-kr/azure/application-gateway/rewrite-http-headers-url

       - Azure Front Door: https://docs.microsoft.com/ko-kr/azure/frontdoor/front-door-url-redirect


위 Docs를 참고하여 리소스 추가 후 URL Context Path 설정을 통하여 Redirection 설정 가능합니다.

위 방법은 리소스 추가를 통해 설정한 내용으로, 추가 비용 산정이 필요합니다.



이로써 2가지 대안을 통해 Azure App Service의 여러 Custom Domain 사용 시 1개의 Domain으로 Redirection 설정하는 방법을 알아봤습니다.

감사합니다.