Odpowiedź HTTP 304 w sesji śledzenia

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Krótki opis problemu

Śledzenie interfejsu API w interfejsie Edge dla chmury prywatnej zawiera odpowiedź HTTP 304 w kolumnie Stan okna śledzenia:

Komunikaty o błędach

Nie ma komunikatów o błędach – wywołanie serwera proxy interfejsu API zwraca odpowiedź o powodzeniu, np. HTTP 200. Jednak w oknie śledzenia w interfejsie użytkownika Edge wyświetla się odpowiedź HTTP 304 i nie są zbierane żadne dane śledzenia.

Możliwe przyczyny

W Edge dla chmury prywatnej interfejs Edge próbuje śledzić serwer proxy interfejsu API, do którego uzyskano dostęp przez prywatny adres IP.

Narzędzie do śledzenia w interfejsie użytkownika Edge ma możliwość wysłania żądania do interfejsu API na dowolny adres URL. W scenariuszu wdrożenia, gdy interfejs użytkownika Edge jest współhostowany z innymi usługami wewnętrznymi, złośliwy użytkownik może niewłaściwie używać narzędzia do śledzenia, aby wysyłać żądania do usług za pomocą prywatnego adresu IP, takiego jak localhost lub 127.0.0.1.

W środowisku produkcyjnym zazwyczaj pozostawiasz domyślne ustawienie, aby uniemożliwić użytkownikom śledzenie prywatnego adresu IP. W ten sposób jest na przykład wdrażana publiczna wersja interfejsu użytkownika Edge.

W przypadku wewnętrznego środowiska programistycznego lub testowego możesz jednak zastąpić to ustawienie domyślne, aby umożliwić deweloperom korzystającym z interfejsu API śledzenie dowolnych adresów IP. Zwykle środowisko programistyczne/testowe znajduje się za zaporą sieciową, która nie zezwala na dostęp publiczny.

Uwaga: sprawdzoną metodą jest pozostawienie wartości domyślnej bez zmian, aby uniemożliwić dostęp do prywatnych adresów IP nawet w środowisku programistycznym lub testowym, chyba że musisz to zrobić.

Przyczyna: próba uzyskania dostępu do serwera proxy interfejsu API za pomocą prywatnego adresu IP

Domyślnie interfejs Edge dla Edge dla chmury prywatnej uniemożliwia użytkownikom śledzenie wywołań interfejsu API wykonywanych z użyciem prywatnych adresów IP. Lista prywatnych adresów IP zawiera:

  • Adres sprzężenia zwrotnego (127.0.0.1 lub localhost)
  • Adresy lokalne w witrynie (dla IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • Dowolny adres lokalny (dowolny adres lokalny)

Na przykład to polecenie curl wywołuje serwer proxy interfejsu API, używając adresu IP 127.0.0.1, który jest uznawany za prywatny adres IP:

curl http://127.0.0.1:9001/myapiproxy

W oknie śledzenia tego wywołania widzisz odpowiedź HTTP 304, nawet jeśli polecenie curl zwróciło błąd.

Rozdzielczość

Aby włączyć w interfejsie użytkownika Edge śledzenie prywatnych adresów IP na potrzeby chmury prywatnej, ustaw ten token w ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

Aby ustawić tę właściwość:

  1. Otwórz plik ui.properties w edytorze. Jeśli plik nie istnieje, utwórz go.
    vi /opt/apigee/customer/application/ui.properties
  2. Ustaw wartość „true” dla tych właściwości:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. Zapisz zmiany w usłudze ui.properties.
  4. Upewnij się, że plik właściwości należy do użytkownika „apigee”:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Ponownie uruchom interfejs Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Interfejs użytkownika Edge ma teraz dostęp do prywatnych adresów IP w narzędziu do śledzenia.

Aby później wyłączyć w interfejsie użytkownika śledzenie żądań przez prywatne adresy IP, edytuj ui.properties i ustaw właściwość false, a następnie ponownie uruchom interfejs Edge.

Więcej informacji znajdziesz w artykule na temat zezwalania na dostęp interfejsu Edge do lokalnych adresów IP.