Konfigurieren des Ignorieren-Headers für 405-Property in Nachrichtenprozessoren wird konfiguriert

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

In der Client-Server-Kommunikation antwortet ein Server mit dem HTTP-Statuscode 405 Method Not Allowed, wenn die HTTP-Anfragemethode, die vom Client präsentiert wird, dem Server bekannt ist aber von der Zielressource nicht unterstützt wird. Ähnlich kann der Backend-Server in Apigee Edge mit dem HTTP-Statuscode 405 Method Not Allowed. antworten.

Apigee Edge erwartet, dass der Backend-Server 405 Method Not Allowed Antworten mit der Liste der zulässigen Methoden im Allow Header gemäß der Spezifikation RFC 7231, Abschnitt 6.5.5: 405 Method Not Allowed sendet.

Der Allow-Header muss im folgenden Format gesendet werden:

Allow: HTTP_METHODS

Wenn Ihr Backend-Server beispielsweise die Methoden GET, POST und HEAD zulässt, muss der Allow Header sie wie folgt enthalten:

Allow: GET, POST, HEAD

Wenn der Backend-Server den Allow Header nicht mit dem HTTP-Statuscode 405 Method Not Allowed, sendet, gibt Apigee den HTTP-Statuscode 502 Bad Gateway mit dem Fehlercode protocol.http.Response405WithoutAllowHeader an die Clientanwendung zurück. Die empfohlene Lösung für dieses Problem besteht darin, den Backend-Server so zu konfigurieren, dass er der Spezifikation RFC 7231, Abschnitt 6.5.5: 405 Method Not Allowed entspricht, oder die Fehlerbehandlung zu verwenden, um mit dem HTTP-Statuscode 405 Method Not Allowed einschließlich des Allow Headers zu antworten, wie im Playbook zur Fehlerbehebung 502 Bad Gateway – Response 405 without Allow header beschrieben.

In einigen Ausnahmefällen ist es jedoch möglicherweise nicht möglich, Ihr Backend zu korrigieren oder Ihren API-Proxy zu ändern, um dieses Problem sofort zu beheben.

In solchen Fällen können Sie die Option „Allow-Header ignorieren“ für die 405 Property HTTP.ignore.allow_header.for.405 vorübergehend auf Ebene des Message Processors festlegen. Wenn Sie diese Property auf true setzen, wird verhindert, dass Apigee die Antwort 502 Bad Gateway an Clientanwendungen zurückgibt, auch wenn der Backend-Server den HTTP-Statuscode 405 Method Not Allowed ohne den Allow Header sendet.

Sobald Sie Ihren Backend-Server so konfigurieren können, dass er den HTTP-Statuscode 405 Method Not Allowed mit dem Allow Header sendet, können Sie die Property HTTP.ignore.allow_header.for.405 auf den Standardwert false zurücksetzen.

Hinweis

Bevor Sie die Schritte in diesem Dokument ausführen, sollten Sie die folgenden Themen kennen:

Option „Allow-Header ignorieren“ für die Property „405“ auf „true“ für Message Processors konfigurieren

In Apigee Edge ist die Property HTTP.ignore.allow_header.for.405 standardmäßig auf false gesetzt. Dadurch kann Apigee Edge die Antwort 502 Bad Gateway mit dem Fehlercode protocol.http.Response405WithoutAllowHeader an die Clientanwendungen zurückgeben, wenn der Backend-Server den HTTP-Statuscode 405 Method Not Allowed ohne den Allow-Header sendet. Wenn Sie verhindern möchten, dass Apigee Edge 502 Bad Gateway an Clientanwendungen sendet, müssen Sie den Wert der Property HTTP.ignore.allow_header.for.405 für die Message Processors auf true setzen.

In diesem Abschnitt wird beschrieben, wie Sie die Property HTTP.ignore.allow_header.for.405 auf true für die Message Processors setzen. Verwenden Sie dazu das Token gemäß der Syntax, die unter Edge konfigurieren beschrieben ist.

  1. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor. Wenn sie noch nicht vorhanden ist, erstellen Sie sie.

    /opt/apigee/customer/application/message-processor.properties

    Geben Sie beispielsweise Folgendes ein, um die Datei mit vi zu öffnen:

    vi /opt/apigee/customer/application/message-processor.properties
  2. Fügen Sie der Property-Datei eine Zeile im folgenden Format hinzu:
    conf_http_HTTP.ignore.allow_header.for.405=true
  3. Speichern Sie die Änderungen.
  4. Achten Sie darauf, dass die Property-Datei dem Nutzer apigee gehört, wie unten gezeigt:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Starten Sie den Message Processor neu, wie unten gezeigt:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die obigen Schritte für alle Message Processors.

Prüfen, ob die Option „Allow-Header ignorieren“ für die Property „405“ auf „true“ für Message Processors gesetzt ist

In diesem Abschnitt wird beschrieben, wie Sie prüfen, ob die Property HTTP.ignore.allow_header.for.405 für die Message Processors erfolgreich auf true gesetzt wurde.

Auch wenn Sie das Token conf_http_HTTP.ignore.allow_header.for.405 verwenden, um den Wert der Property für den Message Processor zu aktualisieren, müssen Sie prüfen, ob die tatsächliche Property HTTP.ignore.allow_header.for.405 auf true gesetzt wurde.

  1. Suchen Sie auf dem Message Processor-Computer im Verzeichnis /opt/apigee/edge-message-processor/conf nach der Property HTTP.ignore.allow_header.for.405 und prüfen Sie, ob sie auf true gesetzt wurde, wie unten gezeigt:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Wenn die Property für den Message Processor erfolgreich aktualisiert wurde, sollte der obige Befehl den Wert der Property HTTP.ignore.allow_header.for.405 als true in der Datei http.properties anzeigen, wie unten gezeigt:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Wenn der Wert für die Property HTTP.ignore.allow_header.for.405 immer noch false ist, prüfen Sie, ob Sie alle Schritte unter Option „Allow-Header ignorieren“ für die Property „405“ auf „true“ für Message Processors konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal korrekt.
  4. Wenn Sie die Property HTTP.ignore.allow_header.for.405 immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.

Option „Allow-Header ignorieren“ für die Property „405“ auf „false“ für Message Processors konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie die Property HTTP.ignore.allow_header.for.405 für den Message Processor auf den Standardwert false setzen. Verwenden Sie dazu das Token gemäß der Syntax, die unter Edge konfigurieren beschrieben ist.

  1. Prüfen Sie, ob die Property HTTP.ignore.allow_header.for.405 auf true gesetzt wurde. Suchen Sie dazu im Verzeichnis /opt/apigee/edge-message-processor/conf nach dieser Property und prüfen Sie ihren Wert mit dem folgenden Befehl:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Wenn die Property für den Message Processor auf true gesetzt ist, sollte der obige Befehl den Wert der Property HTTP.ignore.allow_header.for.405 in der Datei http.properties als true anzeigen, wie unten gezeigt:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. Wenn der obige Befehl zeigt, dass die Property HTTP.ignore.allow_header.for.405 auf false (Standardwert) gesetzt ist, müssen Sie nichts weiter tun. Das heißt, überspringen Sie die folgenden Schritte.
  4. Wenn die Property HTTP.ignore.allow_header.for.405 auf true gesetzt ist, führen Sie die folgenden Schritte aus, um sie auf den Standardwert false zurückzusetzen.
  5. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor:

    /opt/apigee/customer/application/message-processor.properties

    Geben Sie beispielsweise Folgendes ein, um die Datei mit vi zu öffnen:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Entfernen Sie die folgende Zeile aus der Property-Datei:
    conf_http_HTTP.ignore.allow_header.for.405=true
  7. Speichern Sie die Änderungen.
  8. Achten Sie darauf, dass die Property-Datei dem Nutzer apigee gehört, wie unten gezeigt:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Starten Sie den Message Processor neu, wie unten gezeigt:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. Wenn Sie mehr als einen Message Processor haben, wiederholen Sie die obigen Schritte für alle Message Processors.

Prüfen, ob die Option „Allow-Header ignorieren“ für die Property „405“ auf „false“ für Message Processors gesetzt ist

In diesem Abschnitt wird beschrieben, wie Sie prüfen, ob die Property HTTP.ignore.allow_header.for.405 für die Message Processors erfolgreich auf false gesetzt wurde.

Auch wenn Sie das Token conf_http_HTTP.ignore.allow_header.for.405 verwenden, um den Wert für den Message Processor zu aktualisieren, müssen Sie prüfen, ob die tatsächliche Property HTTP.ignore.allow_header.for.405 auf false gesetzt wurde.

  1. Suchen Sie auf dem Message Processor-Computer im /opt/apigee/edge-message- processor/conf Verzeichnis nach der Property HTTP.ignore.allow_header.for.405 und prüfen Sie, ob sie auf false gesetzt wurde, wie unten gezeigt:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Wenn die Property für den Message Processor erfolgreich aktualisiert wurde, sollte der obige Befehl den Wert der Property HTTP.ignore.allow_header.for.405 als false in der http.properties Datei anzeigen, wie unten gezeigt:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. Wenn der Wert für die Property HTTP.ignore.allow_header.for.405 immer noch true ist, prüfen Sie, ob Sie alle Schritte unter Option „Allow-Header ignorieren“ für die Property „405“ auf „false“ für Message Processors konfigurieren korrekt ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte noch einmal korrekt.
  4. Wenn Sie die Property HTTP.ignore.allow_header.for.405 immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.