Application Gateway 사용자 지정 오류 페이지 만들기
Application Gateway를 사용하면 기본 오류 페이지를 표시하는 대신 사용자 지정 오류 페이지를 만들 수 있습니다. 다양한 응답 코드와 관련된 오류에 브랜딩과 레이아웃을 사용할 수 있습니다. 사용자 지정 오류 페이지를 설정해야 하는 몇 가지 시나리오는 다음과 같습니다.
- 502 잘못된 게이트웨이 응답 코드에 대한 유지 관리 또는 상태 페이지 표시. 이는 애플리케이션 게이트웨이에서 예약된 유지 관리 작업 중 트래픽을 라우팅할 백 엔드 서버가 없거나 백 엔드 풀 서버에서 예기치 않은 문제가 발생하는 경우에 유용합니다.
- WAF가 방지 모드에 있고 악성 트래픽을 차단할 때 발생하는 403 금지된 응답 코드에 대해 사용자 지정된 무단 액세스 페이지 표시
- 문제 발생 시 연락처 세부 정보가 포함된 회사 브랜드 페이지 표시
지원되는 응답 코드
다음과 같은 응답 코드에 대해 사용자 지정 오류 페이지가 지원됩니다.
응답 코드 | 설명 |
---|---|
400 | 잘못된 요청(미리 보기) |
403 | 금지 |
405 | 메서드가 허용되지 않음(미리 보기) |
408 | 요청 시간 제한(미리 보기) |
500 | 내부 서버 오류(미리 보기) |
502 | 나쁜 게이트웨이 |
503 | 서비스를 사용할 수 없음(미리 보기) |
504 | 게이트웨이 시간 제한(미리 보기) |
참고 항목
- 새 응답 코드에 대한 오류 페이지를 구성하려면 API 버전 2022-09-01 이상을 사용해야 합니다.
- 응답 코드 404(페이지를 찾을 수 없음)는 현재 지원되지 않습니다.
- Application Gateway에서 생성된 응답 코드에 대한 사용자 지정 오류 페이지가 표시됩니다. 백 엔드 서버에서 오류가 발생하면 수정되지 않은 상태로 클라이언트에 전달됩니다.
구성 수준
사용자 지정 오류 페이지는 전역 또는 수신기 수준에서 정의할 수 있습니다.
- 전역 수준 - 전역 수준에서 설정된 오류 페이지는 해당 애플리케이션 게이트웨이의 모든 수신기에 적용됩니다. Azure Portal을 통한 구성은 현재 지원되지 않습니다.
- 수신기 수준 - 수신기 수준의 오류 페이지는 해당 수신기에서 제공하는 애플리케이션 오류 페이지를 설정하는 데 세분화된 컨트롤을 제공합니다.
참고 항목
게이트웨이에서 전역 및 수신기 수준 오류 페이지를 조합하여 사용하는 경우 해당 수신기에 원하는 모든 응답 코드의 URL을 명시적으로 언급해야 합니다. 수신기별 구성은 해당 수신기에 적용할 수 있는 이전의 전역 구성을 모두 재정의합니다.
요구 사항
사용자 지정 오류 페이지를 만들려면 다음과 같아야 합니다.
- 사용자 지정 오류 페이지에서 필요한 응답 코드를 알고 있습니다.
- HTML 페이지의 해당 URL(원격 위치)을 알고 있습니다. 공개적으로 액세스할 수 있는 파일이어야 합니다.
- 오류 페이지가 공개적으로 액세스할 수 있고 200 응답을 반환해야 합니다.
- 오류 페이지는 *.htm 또는 *.html 확장자 형식이어야 합니다.
- 페이지 크기가 1MB 미만이어야 합니다.
- Azure Blob Storage 계정을 사용할 때 네트워크 액세스 설정이 "모든 네트워크에서 사용"으로 설정되어 있는지 확인합니다.
이 HTML 파일의 내부 또는 외부 이미지/CSS를 참조할 수 있습니다. 외부에서 참조되는 리소스의 경우 공개적으로 액세스할 수 있는 절대 URL을 사용합니다. base64로 인코딩된 인라인 이미지, javascript 또는 CSS를 사용할 때 HTML 파일 크기에 유의합니다.
참고 항목
- Azure 에코시스템 내에서 Azure Blob 스토리지 계정 또는 Virtual Machine을 사용하여 오류 페이지를 호스트해야 합니다. Azure CDN 서비스가 제공하는 스토리지 계정은 현재 지원되지 않으므로 Blob Storage에 직접 액세스할 수 있어야 합니다.
- 원격 위치에서 오류 페이지를 호스트하도록 선택할 수도 있습니다.
- 상대 링크는 지원되지 않습니다.
작동 원리
애플리케이션 게이트웨이 구성에서 오류 페이지를 지정하면 게이트웨이가 인터넷을 통해 HTML 페이지에 대한 연결을 확인합니다. 그런 다음 로컬 캐시에 파일을 다운로드합니다.
클라이언트에 오류가 발생하면 애플리케이션 게이트웨이가 응답 코드와 해당 HTML 페이지를 반환합니다. 외부에서 참조된 모든 리소스(예: 이미지, JavaScript, CSS 파일)는 클라이언트에서 직접 가져옵니다.
애플리케이션 게이트웨이는 새 버전을 가져오기 위해 원본 파일의 위치를 주기적으로 확인하지 않습니다. 게이트웨이에서 구성을 업데이트하여 파일의 캐시를 수동으로 업데이트할 수 있습니다. 예를 들어 오류 URL을 1페이지에서 2페이지로 변경한 후 다시 1페이지로 변경하거나 새 수신기를 추가합니다.
포털 구성
수신기별 사용자 지정 오류 페이지를 구성하는 단계는 다음과 같습니다.
포털에서 Application Gateway를 탐색하고 필요한 원본을 선택합니다.
수신기를 선택하고 오류 페이지를 지정할 특정 수신기로 이동합니다.
사용자 지정 오류 페이지 섹션에서 필요한 상태 코드에 공개적으로 액세스할 수 있는 URL을 지정합니다.
[저장]을 선택합니다.
Azure PowerShell 구성
Azure PowerShell을 사용하여 사용자 지정 오류 페이지를 구성할 수 있습니다. 예를 들어, 글로벌 사용자 지정 오류 페이지:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
또는 수신기 수준 오류 페이지:
$appgw = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>
$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw
$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"
Set-AzApplicationGateway -ApplicationGateway $appgw
자세한 내용은 Add-AzApplicationGatewayCustomError 및 Add-AzApplicationGatewayHttpListenerCustomError를 참조하세요.
다음 단계
Application Gateway 진단에 대한 자세한 내용은 백 엔드 건강, 진단 로그 및 Application Gateway에 대한 메트릭을 참조하세요.