Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
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ługiwany przez zasób docelowy. Podobnie w Apigee Edge serwer backendu może
odpowiedź z kodem stanu HTTP 405 Method Not Allowed.
Apigee Edge oczekuje, że serwer backendu wyśle 405 Method Not Allowed
odpowiedzi
z listą dozwolonych metod w nagłówku Allow
, zgodnie ze specyfikacją
RFC 7231, sekcja 6.5.5: 405 Method Not Allowed (Niedozwolona metoda).
Nagłówek Allow
należy wysyłać w następującym formacie:
Allow: HTTP_METHODS
Jeśli na przykład serwer backendu zezwala na GET
, POST
i
HEAD
, musisz upewnić się, że zawiera je nagłówek Allow
w następujący sposób:
Allow: GET, POST, HEAD
Jeśli serwer backendu nie wysyła 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
i aplikacjami klienckimi. Zalecane rozwiązanie w celu rozwiązania tego błędu to
aby naprawić serwer backendu, aby był zgodny ze specyfikacją
RFC 7231, sekcja 6.5.5: 405 Method Not Allowed (Niedozwolona metoda 405) lub użyj obsługi błędów, aby
w odpowiedzi prześlij kod stanu HTTP 405 Method Not Allowed
, w tym kod stanu HTTP
Nagłówek Allow
zgodny z opisem w poradniku dotyczącym rozwiązywania problemów
502 Nieprawidłowa brama – odpowiedź 405 bez nagłówka allow.
Jednak w niektórych wyjątkowych przypadkach naprawa backendu lub modyfikacja Proxy API, aby natychmiast rozwiązać ten problem.
W takich przypadkach możesz ustawić nagłówek „ignoring allow” dla właściwości 405
.
HTTP.ignore.allow_header.for.405
w:
Tymczasowy poziom procesora wiadomości. Ustawienie tej właściwości na true
uniemożliwia Apigee
zwrócenia odpowiedzi 502 Bad Gateway
aplikacjom klienckim, nawet jeśli
serwer backendu wysyła kod stanu HTTP 405 Method Not Allowed
bez prefiksu
Allow
.
Gdy uda Ci się naprawić serwer backendu, aby wysyłał kod stanu HTTP 405 Method
Not Allowed
z nagłówkiem Allow
, możesz przywrócić tę właściwość
HTTP.ignore.allow_header.for.405
na domyślną wartość false
.
Zanim zaczniesz
Przed użyciem kroków opisanych w tym dokumencie upewnij się, że rozumiesz następujące tematy:
- Przeczytaj poradnik – 502 Nieprawidłowa brama – odpowiedź 405 bez nagłówka allow.
- Jeśli nie wiesz, jak skonfigurować właściwości Edge w Private Cloud, przeczytaj Jak skonfigurować Edge
Konfigurowanie nagłówka zezwalającego ignorowania dla właściwości 405 na „prawda” w procesorach wiadomości
W Apigee Edge właściwość HTTP.ignore.allow_header.for.405
jest ustawiona na
false
. Dzięki temu Apigee Edge może zwracać błąd 502 Bad
Gateway
z kodem błędu protocol.http.Response405WithoutAllowHeader
aplikacje klienckie, jeśli serwer backendu wysyła kod stanu HTTP 405 Method Not
Allowed
bez nagłówka Allow
. Jeśli chcesz uniemożliwić Apigee Edge
wysyłaniu wiadomości 502 Bad Gateway
do aplikacji klienckich, musisz ustawić wartość
z właściwości HTTP.ignore.allow_header.for.405
do true
w wiadomości
Procesory.
Z tej sekcji dowiesz się, jak skonfigurować usługę
HTTP.ignore.allow_header.for.405
do true
w:
z procesorami wiadomości używającymi tokena zgodnie ze składnią opisaną w
Jak skonfigurować Edge
-
Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli nie już istnieje, a następnie ją utwórz.
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik przy użyciu polecenia 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 plik właściwości należy do użytkownika
apigee
, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli masz więcej niż jeden procesor wiadomości, powtórz powyższe kroki dla wszystkich Procesory.
Weryfikowanie nagłówka zezwolenia na ignorowanie usługi 405 ma wartość Prawda w procesorach wiadomości
Z tej sekcji dowiesz się, jak sprawdzić, czy usługa
Aplikacja HTTP.ignore.allow_header.for.405
została uaktualniona do wersji true
na procesorach wiadomości.
Mimo że używasz tokena conf_http_HTTP.ignore.allow_header.for.405
do aktualizacji
jako wartość usługi w procesorze wiadomości, musisz sprawdzić, czy rzeczywista usługa
Pole HTTP.ignore.allow_header.for.405
ma wartość true
.
- Na komputerze z procesorem wiadomości wyszukaj właściwość
HTTP.ignore.allow_header.for.405
w:/opt/apigee/edge-message-processor/conf
i sprawdź, czy została ustawiona natrue
, jak pokazano poniżej:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jeśli właściwość została zaktualizowana w procesorze wiadomości, użyj powyższego polecenia
powinien wyświetlać wartość właściwości
HTTP.ignore.allow_header.for.405
jakotrue
w 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.405
jakofalse
, a następnie sprawdź, czy zostały wykonane wszystkie czynności opisane na Konfigurowanie nagłówka ignorowania zezwalającego dla właściwości 405 na „prawda” procesory wiadomości. Jeśli pominąć jakiś krok, powtórz je ponownie . - Jeśli nadal nie możesz zmodyfikować usługi
HTTP.ignore.allow_header.for.405
, a potem skontaktuj się z zespołem pomocy Apigee Edge.
Konfigurowanie nagłówka zezwolenia na ignorowanie dla właściwości 405 na wartość Fałsz w procesorach wiadomości
Z tej sekcji dowiesz się, jak skonfigurować usługę
HTTP.ignore.allow_header.for.405
do wartości domyślnej false
w procesorze wiadomości, przy użyciu tokena zgodnie ze składnią opisaną w artykule
Jak skonfigurować Edge
- Sprawdź, czy usługa
HTTP.ignore.allow_header.for.405
została zmieniona natrue
Możesz to zrobić, wyszukując tę usługę w katalogu/opt/apigee/edge-message-processor/conf
i sprawdź jego zawartość 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
true
w procesorze wiadomości, to powyższe polecenie powinien wyświetlać wartość właściwościHTTP.ignore.allow_header.for.405
jakotrue
w 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 wskazuje, że właściwość
HTTP.ignore.allow_header.for.405
jest ustawiona nafalse
(wartość domyślna), nie musisz nic robić. To znaczy, pomiń te czynności. - Jeśli właściwość
HTTP.ignore.allow_header.for.405
ma wartośćtrue
, następnie wykonaj poniższe kroki, by przywrócić jego domyślną wartośćfalse
. Na komputerze z procesorem wiadomości otwórz w edytorze ten plik:
/opt/apigee/customer/application/message-processor.properties
Aby na przykład otworzyć plik przy użyciu polecenia 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 plik właściwości należy do użytkownika
apigee
, jak pokazano poniżej:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Jeśli masz więcej niż jeden procesor wiadomości, powtórz powyższe kroki dla wszystkich Procesory.
Weryfikowanie nagłówka zezwolenia na ignorowanie w przypadku usługi 405 ma wartość Fałsz w procesorach wiadomości
Z tej sekcji dowiesz się, jak sprawdzić, czy usługa
Aplikacja HTTP.ignore.allow_header.for.405
została uaktualniona do wersji false
na procesorach wiadomości.
Mimo że korzystasz z tokena
conf_http_HTTP.ignore.allow_header.for.405
, aby zaktualizować wartość w wiadomości
firmy obsługującej płatności, musisz zweryfikować, czy rzeczywiście usługa HTTP.ignore.allow_header.for.405
została ustawiona na false
.
- Na komputerze z procesorem wiadomości wyszukaj właściwość
HTTP.ignore.allow_header.for.405
w katalogu/opt/apigee/edge-message- processor/conf
i sprawdź, czy ustawiono tu wartośćfalse
, jak pokazano na ilustracji. poniżej:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Jeśli właściwość została zaktualizowana w procesorze wiadomości, użyj powyższego polecenia
powinien wyświetlać wartość właściwości
HTTP.ignore.allow_header.for.405
jakofalse
w 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.405
jakotrue
, sprawdź, czy zostały wykonane wszystkie czynności opisane w Konfigurowanie nagłówka zezwolenia na ignorowanie dla właściwości 405 na wartość Fałsz w procesorach wiadomości . Jeśli pominiesz jakiś krok, powtórz je poprawnie. - Jeśli nadal nie możesz zmodyfikować usługi
HTTP.ignore.allow_header.for.405
, a potem skontaktuj się z zespołem pomocy Apigee Edge.