Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
W komunikacji klient-serwer serwer odpowiada kodem stanu HTTP 405
Method Not Allowed jeśli
metoda żądania HTTP przedstawiona przez klienta jest znana serwerowi
ale nie jest obsługiwana przez zasób docelowy. Podobnie w Apigee Edge serwer backendu może
odpowiedzieć kodem stanu HTTP 405 Method Not Allowed.
Apigee Edge oczekuje, że serwer backendu będzie wysyłać odpowiedzi 405 Method Not Allowed z listą dozwolonych metod w nagłówku Allow, zgodnie ze specyfikacją
RFC 7231, sekcja 6.5.5: 405 Method Not Allowed.
Nagłówek Allow musi być wysyłany w tym formacie:
Allow: HTTP_METHODS
Jeśli na przykład serwer backendu zezwala na metody GET, POST i
HEAD, musisz się upewnić, że nagłówek Allow zawiera je
w ten sposób:
Allow: GET, POST, HEAD
Jeśli serwer backendu nie wyśle nagłówka Allow z kodem stanu HTTP
405 Method Not Allowed, Apigee zwróci kod stanu HTTP 502 Bad
Gateway z kodem błędu protocol.http.Response405WithoutAllowHeader do
aplikacji klienckiej. Zalecanym rozwiązaniem tego błędu jest
naprawienie serwera backendu, aby był zgodny ze specyfikacją
RFC 7231, sekcja 6.5.5: 405 Method Not Allowed lub użycie obsługi błędów, aby
odpowiedzieć kodem stanu HTTP 405 Method Not Allowed wraz z
nagłówkiem Allow, jak opisano w scenariuszu rozwiązywania problemów
502 Bad Gateway – odpowiedź 405 bez nagłówka Allow.
W wyjątkowych przypadkach może się jednak okazać, że nie można od razu naprawić backendu ani zmodyfikować serwera proxy interfejsu API, aby rozwiązać ten problem.
W takich przypadkach możesz tymczasowo ustawić ignorowanie nagłówka Allow dla właściwości 405
HTTP.ignore.allow_header.for.405 na poziomie
procesora komunikatów. Ustawienie tej właściwości na true uniemożliwia Apigee
zwracanie odpowiedzi 502 Bad Gateway do aplikacji klienckich, nawet jeśli
serwer backendu wyśle kod stanu HTTP 405 Method Not Allowed bez
nagłówka Allow.
Gdy będziesz mieć możliwość naprawienia serwera backendu, aby wysyłał kod stanu HTTP 405 Method
Not Allowed z nagłówkiem Allow, możesz przywrócić domyślną wartość false właściwości
HTTP.ignore.allow_header.for.405.
Zanim zaczniesz
Zanim wykonasz czynności opisane w tym dokumencie, upewnij się, że rozumiesz te tematy:
- Przeczytaj scenariusz rozwiązywania problemów - 502 Bad Gateway – odpowiedź 405 bez nagłówka Allow.
- Jeśli nie wiesz, jak skonfigurować właściwości Edge w Private Cloud, przeczytaj artykuł Konfigurowanie Edge.
Konfigurowanie ignorowania nagłówka Allow dla właściwości 405 na procesorach wiadomości
W Apigee Edge właściwość HTTP.ignore.allow_header.for.405 jest domyślnie ustawiona na
false. Dzięki temu Apigee Edge może zwracać kod stanu 502 Bad
Gateway z kodem błędu protocol.http.Response405WithoutAllowHeader do
aplikacji klienckich, jeśli serwer backendu wyśle kod stanu HTTP 405 Method Not
Allowed bez nagłówka Allow. Jeśli chcesz uniemożliwić Apigee Edge
wysyłanie 502 Bad Gateway do aplikacji klienckich, musisz ustawić wartość
właściwości HTTP.ignore.allow_header.for.405 na true na procesorach
wiadomości.
W tej sekcji opisujemy, jak skonfigurować właściwość
HTTP.ignore.allow_header.for.405 na true na
procesorach wiadomości za pomocą tokena zgodnie ze składnią opisaną w
artykule Konfigurowanie Edge.
-
Na maszynie procesora komunikatów otwórz w edytorze ten plik. Jeśli plik nie istnieje utwórz go.
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik za pomocą vi, wpisz:
vi /opt/apigee/customer/application/message-processor.properties
- Dodaj do pliku właściwości wiersz w tym formacie:
conf_http_HTTP.ignore.allow_header.for.405=true
- Zapisz zmiany.
- Upewnij się, że właścicielem pliku właściwości jest użytkownik
apigee, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli masz więcej niż 1 procesor komunikatów, powtórz powyższe czynności na wszystkich procesorach komunikatów.
Sprawdzanie, czy ignorowanie nagłówka Allow dla właściwości 405 jest ustawione na true na procesorach wiadomości
W tej sekcji opisujemy, jak sprawdzić, czy właściwość
HTTP.ignore.allow_header.for.405 została prawidłowo zaktualizowana na true
na procesorach wiadomości.
Mimo że do zaktualizowania wartości właściwości na procesorze komunikatów używasz tokena conf_http_HTTP.ignore.allow_header.for.405, musisz sprawdzić, czy rzeczywista właściwość HTTP.ignore.allow_header.for.405 została ustawiona na true.
- Na maszynie procesora komunikatów wyszukaj właściwość
HTTP.ignore.allow_header.for.405w katalogu/opt/apigee/edge-message-processor/confi sprawdź, czy została ustawiona natruejak pokazano poniżej:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jeśli właściwość zostanie prawidłowo zaktualizowana na procesorze komunikatów, powyższe polecenie powinno wyświetlić wartość właściwości
HTTP.ignore.allow_header.for.405jakotruew plikuhttp.properties, jak pokazano poniżej:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Jeśli nadal widzisz wartość właściwości
HTTP.ignore.allow_header.for.405jakofalsesprawdź, czy prawidłowo wykonano wszystkie czynności opisane w sekcji Konfigurowanie ignorowania nagłówka Allow dla właściwości 405 na procesorach wiadomości prawidłowo. Jeśli pominiesz jakiś krok, powtórz wszystkie czynności. - Jeśli nadal nie możesz zmodyfikować właściwości
HTTP.ignore.allow_header.for.405, skontaktuj się z zespołem pomocy Apigee Edge.
Konfigurowanie ignorowania nagłówka Allow dla właściwości 405 na procesorach wiadomości
W tej sekcji opisano, jak skonfigurować właściwość
HTTP.ignore.allow_header.for.405 na jej wartość domyślną false
na procesorze komunikatów za pomocą tokena zgodnie ze składnią opisaną w
artykule Konfigurowanie Edge.
- Sprawdź, czy właściwość
HTTP.ignore.allow_header.for.405została zmieniona natrue. Możesz to zrobić, wyszukując tę właściwość w katalogu/opt/apigee/edge-message-processor/confi sprawdzając jej wartość za pomocą tego polecenia:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jeśli właściwość jest ustawiona na
truena procesorze komunikatów, powyższe polecenie powinno wyświetlić wartość właściwościHTTP.ignore.allow_header.for.405jakotruew plikuhttp.properties, jak pokazano poniżej:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Jeśli powyższe polecenie pokazuje, że właściwość
HTTP.ignore.allow_header.for.405jest ustawiona nafalse(wartość domyślna), nie musisz nic robić. Pomiń te kroki. - Jeśli właściwość
HTTP.ignore.allow_header.for.405jest ustawiona natrue, wykonaj te czynności, aby przywrócić jej wartość domyślnąfalse. Na maszynie procesora komunikatów otwórz w edytorze ten plik:
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik za pomocą vi, wpisz:
vi /opt/apigee/customer/application/message-processor.properties
- Usuń z pliku właściwości ten wiersz:
conf_http_HTTP.ignore.allow_header.for.405=true
- Zapisz zmiany.
- Upewnij się, że właścicielem pliku właściwości jest użytkownik
apigee, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Uruchom ponownie procesor komunikatów, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli masz więcej niż 1 procesor komunikatów, powtórz powyższe czynności na wszystkich procesorach komunikatów.
Sprawdzanie, czy ignorowanie nagłówka Allow dla właściwości 405 jest ustawione na false na procesorach wiadomości
W tej sekcji opisujemy, jak sprawdzić, czy właściwość
HTTP.ignore.allow_header.for.405 została prawidłowo zaktualizowana na false
na procesorach wiadomości.
Mimo że do zaktualizowania wartości na procesorze wiadomości używasz tokena
conf_http_HTTP.ignore.allow_header.for.405, musisz sprawdzić, czy rzeczywista właściwość HTTP.ignore.allow_header.for.405
została ustawiona na false.
- Na maszynie procesora komunikatów wyszukaj właściwość
HTTP.ignore.allow_header.for.405w katalogu/opt/apigee/edge-message- processor/confi sprawdź, czy została ustawiona nafalsejak pokazano poniżej:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jeśli właściwość zostanie prawidłowo zaktualizowana na procesorze komunikatów, powyższe polecenie powinno wyświetlić wartość właściwości
HTTP.ignore.allow_header.for.405jakofalsew plikuhttp.properties, jak pokazano poniżej:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Jeśli nadal widzisz wartość właściwości
HTTP.ignore.allow_header.for.405jakotrue, sprawdź, czy prawidłowo wykonano wszystkie czynności opisane w Konfigurowanie ignorowania nagłówka Allow dla właściwości 405 na procesorach wiadomości. Jeśli pominiesz jakiś krok, powtórz wszystkie czynności. - Jeśli nadal nie możesz zmodyfikować właściwości
HTTP.ignore.allow_header.for.405, skontaktuj się z zespołem pomocy Apigee Edge.