Konfigurowanie nagłówka zezwalania na dostęp do usługi 405 w procesorach wiadomości

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:

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

  1. 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
    
  2. Dodaj do pliku właściwości wiersz w tym formacie:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Zapisz zmiany.
  4. 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
    
  5. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 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.

  1. 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 na true, jak pokazano poniżej:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. 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 jako true w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jeśli nadal widzisz wartość właściwości HTTP.ignore.allow_header.for.405 jako false, 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 .
  4. 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

  1. Sprawdź, czy usługa HTTP.ignore.allow_header.for.405 została zmieniona na true 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
    
  2. Jeśli właściwość jest ustawiona na true w procesorze wiadomości, to powyższe polecenie powinien wyświetlać wartość właściwości HTTP.ignore.allow_header.for.405 jako true w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Jeśli powyższe polecenie wskazuje, że właściwość HTTP.ignore.allow_header.for.405 jest ustawiona na false (wartość domyślna), nie musisz nic robić. To znaczy, pomiń te czynności.
  4. 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.
  5. 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
    
  6. Usuń z pliku właściwości ten wiersz:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Zapisz zmiany.
  8. 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
    
  9. Ponownie uruchom procesor wiadomości, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. 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.

  1. 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
    
  2. 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 jako false w pliku http.properties, jak pokazano poniżej:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Jeśli nadal widzisz wartość właściwości HTTP.ignore.allow_header.for.405 jako true, 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.
  4. 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.