trace 세션의 HTTP 304 응답

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

증상

프라이빗 클라우드용 Edge에서 Edge UI로 API를 추적할 때 트레이스 창의 상태 열에 HTTP 304 응답이 표시됩니다.

오류 메시지

오류 메시지는 없습니다. API 프록시 호출이 실제로 HTTP 200과 같은 성공 응답을 반환합니다. 하지만 Edge UI의 trace 창에는 HTTP 304 응답이 표시되고 trace 데이터는 수집되지 않습니다.

가능한 원인

프라이빗 클라우드용 Edge에서 Edge UI는 비공개 IP 주소로 액세스하는 API 프록시를 추적하려고 합니다.

Edge UI의 추적 도구에는 모든 URL로 API 요청을 보낼 수 있는 기능이 있습니다. Edge UI가 다른 내부 서비스와 공동 호스팅되는 배포 시나리오에서 악의적인 사용자가 trace 도구를 오용하여 localhost 또는 127.0.0.1과 같은 비공개 IP 주소를 통해 서비스를 요청할 수 있습니다.

프로덕션 환경에서는 일반적으로 사용자가 비공개 IP 주소를 추적할 수 없도록 기본값을 그대로 둡니다. 예를 들어 이러한 방법으로 Edge UI의 공개 버전이 배포됩니다.

하지만 내부 개발 또는 테스트 환경의 경우 이 기본값을 재정의하여 API 개발자가 모든 IP 주소를 추적할 수 있도록 할 수 있습니다. 일반적으로 개발/테스트 환경은 공개 액세스를 허용하지 않는 방화벽 뒤에 있습니다.

참고: 사용 설정해야 하는 상황이 발생하지 않는 한 개발/테스트 환경에서도 비공개 IP 주소에 대한 트레이스 액세스를 방지하도록 기본값을 그대로 두는 것이 좋습니다.

원인: 비공개 IP 주소를 통해 API 프록시에 액세스하려고 시도함

기본적으로 프라이빗 클라우드용 Edge의 Edge UI는 사용자가 비공개 IP 주소를 통해 발생한 API 호출을 추적하지 못하도록 합니다. 비공개 IP 주소 목록에는 다음이 포함됩니다.

  • 루프백 주소 (127.0.0.1 또는 localhost)
  • 사이트 로컬 주소 (IPv4의 경우 - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • 모든 로컬 주소 (localhost로 연결되는 모든 주소)

예를 들어 다음 curl 명령어는 비공개 IP 주소로 간주되는 127.0.0.1의 IP 주소를 사용하여 API 프록시를 호출합니다.

curl http://127.0.0.1:9001/myapiproxy

curl 명령어가 성공을 반환해도 이 호출에 대한 트레이스 창에 HTTP 304 응답이 표시됩니다.

해상도

Edge UI가 프라이빗 클라우드의 Edge용 비공개 IP 주소를 추적하도록 사용 설정하려면 ui.properties에 다음 토큰을 설정합니다.

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

이 속성을 설정하는 방법은 다음과 같습니다.

  1. 편집기에서 ui.properties 파일을 엽니다. 파일이 없으면 새로 만듭니다.
    vi /opt/apigee/customer/application/ui.properties
  2. 다음 속성을 true로 설정합니다.
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. ui.properties에 변경사항을 저장합니다.
  4. 속성 파일을 'apigee' 사용자가 소유해야 합니다.
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Edge UI를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

이제 Edge UI가 트레이스 도구에서 비공개 IP 주소에 액세스할 수 있습니다.

나중에 UI에서 비공개 IP 주소를 통한 요청을 추적하지 않도록 하려면 ui.properties을 수정하여 속성을 false로 설정한 후 Edge UI를 다시 시작합니다.

자세한 내용은 로컬 IP 주소에 Edge UI 액세스 허용을 참조하세요.