Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
W komunikacji klient-serwer w odpowiedzi serwer odpowiada kodem stanu HTTP 405
Method Not Allowed
, jeśli przedstawiona przez klienta
metoda żądania HTTP jest znana serwerowi, ale nie jest obsługiwana przez zasób docelowy. Podobnie w Apigee Edge serwer backendu może odpowiadać z kodem stanu HTTP 405 Method Not Allowed.
Apigee Edge wymaga, aby serwer backendu wysyłał odpowiedzi 405 Method Not Allowed
z listą dozwolonych metod w nagłówku Allow
, zgodnie ze specyfikacją
RFC 7231, sekcja 6.5.5: Niedozwolona metoda 405.
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 upewnić się, ż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 do aplikacji klienckiej kod stanu HTTP 502 Bad
Gateway
z kodem błędu protocol.http.Response405WithoutAllowHeader
. Zalecanym rozwiązaniem w celu usunięcia tego błędu jest naprawienie serwera backendu zgodnie ze specyfikacją
RFC 7231, sekcja 6.5.5: 405 Niedozwolona metoda lub skorzystanie z obsługi błędów w celu uzyskania odpowiedzi za pomocą kodu stanu HTTP 405 Method Not Allowed
z uwzględnieniem nagłówka Allow
zgodnie ze specyfikacją
502 Błędna brama – odpowiedź 4.
Jednak w niektórych wyjątkowych przypadkach naprawienie backendu lub zmodyfikowanie serwera proxy interfejsu API może nie być możliwe w celu natychmiastowego rozwiązania tego problemu.
W takich przypadkach możesz tymczasowo ustawić nagłówek ignorowania zezwolenia dla właściwości 405
HTTP.ignore.allow_header.for.405
na poziomie procesora wiadomości. Ustawienie tej właściwości na true
uniemożliwia Apigee zwracanie odpowiedzi 502 Bad Gateway
aplikacjom klienckim, nawet jeśli serwer backendu wysyła kod stanu HTTP 405 Method Not Allowed
bez nagłówka Allow
.
Gdy będzie już wszystko gotowe do naprawienia serwera backendu, tak aby wysyłał kod stanu HTTP 405 Method
Not Allowed
z nagłówkiem Allow
, możesz przywrócić wartość domyślną 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 następujące zagadnienia:
- Przeczytaj scenariusz – 502 Bad Gateway – odpowiedź 405 bez nagłówka Zezwalaj.
- Jeśli nie wiesz, jak skonfigurować właściwości Edge w Private Cloud, przeczytaj artykuł o konfigurowaniu Edge.
Konfigurowanie nagłówka ignorowania zezwalania na wartość Prawda w procesorach przetwarzania wiadomości dla właściwości 405
W Apigee Edge właściwość HTTP.ignore.allow_header.for.405
ma domyślnie wartość false
. Dzięki temu Apigee Edge będzie zwracać aplikacjom klienckim żądanie 502 Bad
Gateway
z kodem błędu protocol.http.Response405WithoutAllowHeader
, 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 kodu 502 Bad Gateway
do aplikacji klienckich, musisz ustawić wartość właściwości HTTP.ignore.allow_header.for.405
na true
w procesorach wiadomości.
W tej sekcji dowiesz się, jak skonfigurować właściwość HTTP.ignore.allow_header.for.405
na true
w procesorach wiadomości przy użyciu tokena zgodnie ze składnią opisaną w artykule
Jak skonfigurować Edge.
-
Na komputerze z procesorem wiadomości otwórz poniższy plik w edytorze. Jeśli jeszcze 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 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ż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.
Sprawdzanie, czy w procesach przetwarzania wiadomości nagłówek ignorowania zezwalania na kod 405 ma wartość Prawda ma wartość Prawda
Ta sekcja wyjaśnia, jak sprawdzić, czy właściwość HTTP.ignore.allow_header.for.405
w procesorach wiadomości została zaktualizowana do true
.
Mimo że do aktualizowania wartości właściwości w 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 true
.
- Na komputerze procesora wiadomości wyszukaj właściwość
HTTP.ignore.allow_header.for.405
w katalogu/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, to polecenie powinno wyświetlić 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
, sprawdź, czy zostały wykonane wszystkie czynności opisane w sekcji Konfigurowanie nagłówka reguły ignorowania zezwalania na wartość 405 w systemach przetwarzania wiadomości. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie. - 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 nagłówka ignorowania zezwalania na wartość fałsz w procesorach przetwarzania wiadomości dla właściwości 405
W tej sekcji wyjaśniono, jak skonfigurować wartość domyślną HTTP.ignore.allow_header.for.405
właściwości false
w procesorze wiadomości przy użyciu tokena zgodnie ze składnią opisaną w sekcji Jak skonfigurować Edge
- Sprawdź, czy właściwość
HTTP.ignore.allow_header.for.405
została zmieniona natrue
. Aby to zrobić, wyszukaj tę właściwość w katalogu/opt/apigee/edge-message-processor/conf
i sprawdź 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ść w procesorze wiadomości ma wartość
true
, to polecenie powinno wyświetlić 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 robić nic więcej. W tym celu pomiń kolejne kroki. - Jeśli właściwość
HTTP.ignore.allow_header.for.405
ma ustawienietrue
, wykonaj te czynności, aby przywrócić wartość domyślnąfalse
. Na komputerze procesora wiadomości otwórz ten plik w edytorze:
/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
- Z pliku właściwości usuń 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ż 1 procesor wiadomości, powtórz powyższe kroki na wszystkich procesorach.
Weryfikowanie nagłówka ignorowania zezwalania na działanie 405 ma w procesorach przetwarzania wiadomości wartość fałsz
Ta sekcja wyjaśnia, jak sprawdzić, czy właściwość HTTP.ignore.allow_header.for.405
w procesorach wiadomości została zaktualizowana do false
.
Mimo że do aktualizowania wartości w 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 komputerze procesora wiadomości wyszukaj właściwość
HTTP.ignore.allow_header.for.405
w katalogu/opt/apigee/edge-message- processor/conf
i sprawdź, czy została ustawiona nafalse
, 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, to polecenie powinno wyświetlić 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 sekcji Konfigurowanie nagłówka ignorowania zezwalającego dla właściwości 405 na fałsz w systemach przetwarzania wiadomości. Jeśli pominięto jakiś krok, powtórz wszystkie kroki ponownie. - 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.