Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
Krótki opis problemu
W Edge for Private Cloud podczas śledzenia interfejsu API w interfejsie Edge w kolumnie Stan okna śledzenia widzisz odpowiedź HTTP 304:

Komunikaty o błędach
Nie ma żadnych komunikatów o błędach – wywołanie proxy interfejsu API zwraca odpowiedź o powodzeniu, np. HTTP 200. Jednak w oknie śledzenia w interfejsie Edge wyświetla się odpowiedź HTTP 304 i nie są zbierane żadne dane śledzenia.
Możliwe przyczyny
W Edge for Private Cloud interfejs Edge próbuje śledzić proxy interfejsu API, do którego dostęp uzyskuje się za pomocą prywatnego adresu IP.
Narzędzie śledzenia w interfejsie Edge może wysyłać żądania do interfejsu API na dowolny adres URL. W przypadku wdrożenia, w którym interfejs Edge jest współhostowany z innymi usługami wewnętrznymi, złośliwy użytkownik może nadużyć narzędzia śledzenia, aby wysyłać żądania do usług za pomocą prywatnego adresu IP, np. localhost lub 127.0.0.1.
W środowisku produkcyjnym zwykle pozostawiasz ustawienie domyślne, aby uniemożliwić użytkownikom śledzenie prywatnego adresu IP. W ten sposób wdrażana jest na przykład publiczna wersja interfejsu Edge.
W przypadku wewnętrznego środowiska programistycznego lub testowego możesz jednak zastąpić to ustawienie domyślne, aby umożliwić programistom interfejsów API śledzenie dowolnego adresu IP. Zwykle środowisko programistyczne lub testowe znajduje się za zaporą, która nie zezwala na dostęp publiczny.
Uwaga: zalecamy pozostawienie ustawienia domyślnego aby uniemożliwić dostęp do śledzenia prywatnych adresów IP, nawet w środowisku programistycznym lub testowym, chyba że wystąpi sytuacja, w której trzeba je włączyć.
Przyczyna: próba uzyskania dostępu do proxy interfejsu API za pomocą prywatnego adresu IP
Domyślnie interfejs Edge dla Edge for Private Cloud uniemożliwia użytkownikom śledzenie wywołań interfejsu API wykonywanych za pomocą prywatnych adresów IP. Lista prywatnych adresów IP obejmuje:
- Adres typu loopback (127.0.0.1 lub localhost)
- Adresy lokalne witryny (w przypadku IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- Dowolny adres lokalny (dowolny adres rozpoznawany jako localhost)
Na przykład to polecenie curl wywołuje proxy interfejsu API za pomocą adresu IP 127.0.0.1, który jest uważany 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 powodzenie.
Rozwiązanie
Aby umożliwić interfejsowi Edge śledzenie prywatnych adresów IP w Edge for Private Cloud, ustaw ten token w ui.properties:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
Aby ustawić tę właściwość:
- Otwórz plik
ui.propertiesw edytorze. Jeśli plik nie istnieje, utwórz go.
vi /opt/apigee/customer/application/ui.properties
- Ustaw te właściwości na true:
conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
- Zapisz zmiany w pliku
ui.properties. - Upewnij się, że plik właściwości należy do użytkownika „apigee”:
chown apigee:apigee /opt/apigee/customer/application/ui.properties
- Uruchom ponownie interfejs Edge:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
Interfejs Edge może teraz uzyskiwać dostęp do prywatnych adresów IP w narzędziu śledzenia.
Aby później wyłączyć śledzenie żądań przez interfejs za pomocą prywatnych adresów IP, edytuj plik ui.properties, ustawiając właściwość na false, a następnie uruchom ponownie interfejs Edge.
Powiązane dokumenty (opcjonalnie)
Więcej informacji znajdziesz w artykule Zezwalanie interfejsowi Edge na dostęp do lokalnych adresów IP.