<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
동영상
503 서비스 사용 불가 오류 해결 방법에 대해 자세히 알아보려면 다음 동영상을 시청하세요.
동영상 | 설명 |
---|---|
<ph type="x-smartling-placeholder"></ph> 백엔드 서버에서 503 서비스를 사용할 수 없음 오류 발생 | 다음에 대해 알아보세요.
<ph type="x-smartling-placeholder">
|
증상
클라이언트 애플리케이션이 HTTP 응답 상태를 수신합니다. 503 및 다음 메시지를 표시하며 서비스를 사용할 수 없음 사용할 수 있습니다
오류 메시지
다음 오류 메시지 중 하나가 표시될 수 있습니다.
HTTP/1.1 503 Service Unavailable
HTTP/1.1 503 Service Unavailable: Back-end server is at capacity
다음과 같은 오류 메시지가 표시될 수도 있습니다. HTTP 응답에서 반환됩니다.
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
참고: 위의 응답 코드와 오류 메시지는 예시일 뿐입니다. 어떤 경우에는 오류 메시지 없이 오류 응답 코드만 표시될 수도 있습니다. 오류 응답 코드의 형식 및 내용, 오류 메시지는 백엔드 서버 구현입니다.
원인
HTTP 상태 코드 503은 서버가 현재 수신된 메시지를 처리할 수 없음을 의미합니다. 있습니다 일반적으로 이 오류는 서버가 너무 많거나 유지보수를 위해 일시적으로 다운됩니다
503 Service Unavailable 응답의 가능한 원인은 다음과 같습니다.
원인 | 설명 | 문제 해결 단계를 수행할 수 있는 사용자 |
---|---|---|
오버로드된 서버 | 백엔드 서버가 과부하되었거나 용량을 초과하여 새로운 클라이언트 요청을 전송합니다. | 에지 퍼블릭 및 프라이빗 클라우드 사용자 |
서버가 유지보수 중 | 백엔드 서버가 일시적으로 유지보수 중일 수 있습니다. | 에지 퍼블릭 및 프라이빗 클라우드 사용자 |
원인: 유지보수 중인 서버/서버에 과부하가 걸림
Apigee Edge에서는 백엔드 서버에서 503 서비스를 사용할 수 없음 오류가 반환될 수 있습니다. 다음 상황 중 하나에 해당해야 합니다.
- 백엔드 서버가 과부하 상태이거나 사용량이 많아 새 요청을 처리할 수 없습니다.
- 백엔드 서버가 유지보수로 인해 일시적으로 다운되었습니다.
진단
다음 세 가지 방법 중 하나를 사용하여 오류를 진단할 수 있습니다.
- 추적 도구
- NGINX 액세스 로그
- 백엔드 서버 직접 호출
아래 탭을 클릭하여 각 방법에 대해 자세히 알아보세요.
추적 도구
- trace 세션을 사용 설정합니다. API를 호출하여 문제(503 Service Unavailable)를 재현합니다.
- 실패한 요청 중 하나를 선택하고 trace를 검토합니다.
- 추적의 다양한 단계를 살펴보고 오류가 발생한 위치를 찾습니다.
- 503 오류가 대상 서버에서 응답으로 반환되는 것을 발견하면
503 오류의 원인은 대상 서버입니다.
다음은 503 Service Unavailable 응답을 수신한 경우를 보여주는 샘플 트레이스 스크린샷입니다. 대상 서버에서 전송:
- Response received from target server(대상 서버에서 응답 수신) 단계를 클릭하고
응답 헤더 및 응답 콘텐츠 섹션에 유용한 정보가 있는지 확인합니다.
<ph type="x-smartling-placeholder">
- </ph>
- 응답 헤더에는 확인할 수 있습니다
- 응답 콘텐츠에는 그 이유에 대한 추가 정보가 포함될 수 있습니다. 대상 서버가 503 응답 코드를 보냈다는 것을 의미합니다.
- 다음을 확인하여 503 오류가 대상 서버에서 발생했는지 확인합니다.
AX의 X-Apigee-fault-source 및 X-Apigee-fault-code 값
(애널리틱스 데이터 기록됨) 아래의 단계에 따라 트레이스를 진행합니다.
<ph type="x-smartling-placeholder">
- </ph>
- 아래 스크린샷과 같이 AX (애널리틱스 데이터 기록됨) 단계를 클릭합니다. <ph type="x-smartling-placeholder"></ph>
- 단계 세부정보를 아래로 스크롤하여 응답 헤더 섹션으로 이동한 후 값을 확인합니다. X-Apigee-fault-code와 X-Apigee-fault-source가 아래 표시됩니다. <ph type="x-smartling-placeholder"></ph>
- X-Apigee-fault-source 및 X-Apigee-fault-code의 값이 일치하는 경우
503 오류가 발생한 것이
대상 서버:
응답 헤더 값 X-Apigee-fault-source target X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
- 프록시 체인을 사용 중인지, 즉 대상 서버/대상 엔드포인트가
다른 프록시를 호출할 수 있습니다 확인하는 방법은 다음과 같습니다.
<ph type="x-smartling-placeholder">
- </ph>
- 대상 서버로 요청 전송됨 단계로 돌아가서 Show Curl 버튼을 클릭하고 대상 서버 호스트 별칭을 결정합니다.
- 대상 서버 호스트 별칭이 가상 호스트 별칭을 가리키는 경우 프록시 체이닝입니다. 이 경우 연결된 503 서비스를 사용할 수 없음 오류의 실제 원인을 확인해야 합니다. 이 경우 503 Service Unavailable(서비스를 사용할 수 없음) 오류가 다른 네트워크에 연결된 다른 프록시에서 발생할 수 있습니다. 인코더-디코더와 ANR을 사용하여 이 플레이북을 검토하세요.
- 대상 서버 호스트 별칭이 백엔드 서버를 가리키는 경우 해결 방법.
NGINX 액세스 로그
NGINX 진행 로그를 참조하여 503 상태 코드가 전송되었는지 확인할 수도 있습니다. 백엔드 서버에서 구현됩니다 이 옵션은 문제가 이전에 발생한 적이 있는 경우에 특히 유용합니다. 또는 문제가 간헐적으로 발생하며 UI에서 트레이스를 캡처할 수 없는 경우입니다. NGINX 액세스 로그에서 이 정보를 확인하려면 다음 단계를 따르세요.
- NGINX 액세스 로그를 확인합니다.
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- 특정 기간 동안 특정 API 프록시에서 503 오류가 발생한 경우 검색 (과거에 문제가 발생한 경우) 또는 여전히 503으로 실패한 요청의 경우
- 503 오류가 있으면 오류가 백엔드 서버에서 비롯되는지 확인합니다.
X-Apigee-fault-source 및 X-Apigee-fault-code의 값이
표시된 값
백엔드 서버에서 503 오류가 발생했습니다.
응답 헤더 값 X-Apigee-fault-source target X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode 다음은 대상 서버로 인한 503 오류를 보여주는 샘플 항목입니다.
- 특정 API 프록시를 검토하고 프록시 체이닝 즉, 만약 대상 서버/대상 엔드포인트가 Apigee에서 다른 프록시를 호출하지 않습니다. 프록시 체이닝을 사용하려면 다음 단계까지 연결된 프록시에 대해 위의 모든 단계를 반복해야 합니다. 503 서비스를 사용할 수 없음 오류의 실제 원인을 확인해야 합니다. 이 경우 503 Service Unavailable(서비스 사용 불가) 상태는 다른 단계의 체인으로 연결된 프록시에서도 발생할 수 있습니다. 이 플레이북을 사용하여 진단할 수 있습니다.
- 프록시 체이닝을 사용하지 않음을 확인했는데 503 오류는 해결로 이동합니다.
백엔드 서버 호출
백엔드 서버를 직접 호출하여 동일한 결과를 가져오는지 확인할 수 있습니다. Apigee Edge를 통해 요청이 전송되었을 때 503 서비스를 사용할 수 없음 응답이 수신되었습니다.
- 필요한 헤더, 쿼리 매개변수 및 요청의 일부로 백엔드 서버에 전달되어야 합니다.
- 백엔드 서비스에 공개적으로 액세스할 수 있는 경우 curl 명령어를 사용할 수 있습니다. Postman 또는 기타 REST 클라이언트를 사용하여 백엔드 서버 API를 직접 호출합니다.
- 메시지 프로세서에서만 백엔드 서버에 액세스할 수 있는 경우 curl 명령어, Postman 또는 기타 REST 클라이언트를 사용하고 백엔드 서버 API를 직접 호출합니다. 전송됩니다.
- 백엔드 서비스에서 실제로 503 Service Unavailable 오류를 반환하는지 확인합니다.
해상도
503 오류가 백엔드 서버에서 발생한 것이 확실하면 다음 단계에 따라 문제를 해결하세요.
- 백엔드 서버가 유지보수를 위해 다운되어 문제가 발생한 경우 유지보수 기간 후에 백엔드 서버를 온라인으로 전환할 수 있습니다.
- 백엔드 서버에 과부하가 걸려 문제가 발생한 경우 백엔드 서버에 액세스할 수 있으면 문제를 해결합니다. 그렇지 않은 경우 백엔드 서버 팀과 협력하여 문제를 해결해야 할 수도 있습니다.
API 모니터링을 사용하여 문제 진단
API 모니터링을 사용하면 문제 영역을 신속하게 진단하여 오류, 성능, 지연 시간 문제와 그 원인(예: 개발자 앱, API 프록시, 백엔드 타겟, API 플랫폼입니다
샘플 살펴보기 API 관련 5xx 문제를 해결하는 방법을 보여주는 시나리오 API 모니터링을 사용하여 모니터링할 수 있습니다 예를 들어, 특정 숫자나 데이터가 있을 때 알림을 받도록 Messaging.adaptors.http.flow.ErrorResponseCode 오류의 수가 특정 임계값을 초과합니다.
진단 정보 수집 필요
위의 안내를 따른 후에도 문제가 계속되면 문의한 다음 Apigee 지원
퍼블릭 클라우드 사용자인 경우 다음 정보를 제공하세요.
- 조직 이름
- 환경 이름
- API 프록시 이름
- curl 명령어를 완료하여 503 오류 재현
- 503 Service Unavailable 오류가 있는 요청이 포함된 추적 파일
- 현재 503 오류가 발생하지 않고 있다면 시간대를 포함하여 기간을 입력하세요. 과거 503 오류가 발생했을 때의 정보를 반환합니다.
프라이빗 클라우드 사용자인 경우 다음 정보를 제공하세요.
- 실패한 요청에 대한 전체 오류 메시지가 관찰되었습니다.
- 503 오류가 관찰된 조직, 환경 이름, API 프록시 이름입니다.
- API 프록시 번들을 선택합니다.
- 503 Service Unavailable 오류가 있는 요청이 포함된 추적 파일입니다.
- NGINX 액세스 로그
/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log
- 메시지 프로세서 로그.
/opt/apigee/var/log/edge-message-processor/logs/system.log
- 503 오류가 발생했을 때의 시간대 정보가 포함된 기간입니다.