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

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Bei der Client-Server-Kommunikation antwortet ein Server mit dem HTTP-Statuscode 405 Method Not Allowed, wenn die vom Client bereitgestellte HTTP-Anfragemethode dem Server bekannt ist, aber von der Zielressource nicht unterstützt wird. In Apigee Edge kann der Back-End-Server mit dem HTTP-Statuscode 405 Method Not Allowed. antworten

Apigee Edge erwartet, dass der Back-End-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 Back-End-Server beispielsweise die Methoden GET, POST und HEAD zulässt, müssen Sie dafür sorgen, dass der Header Allow sie enthält:

Allow: GET, POST, HEAD

Wenn der Back-End-Server den Header Allow 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 zur Behebung dieses Fehlers besteht darin, den Back-End-Server so zu reparieren, dass die Spezifikation RFC 7231, Abschnitt 6.5.5: 405 Methode nicht zulässig eingehalten wird. Alternativ können Sie die Fehlerbehandlung verwenden, um mit dem HTTP-Statuscode 405 Method Not Allowed einschließlich des Allow-Headers zu antworten, wie im Playbook zur Fehlerbehebung beschrieben 502 Bad Gateway – Response 405 without Allow header.

In einigen Ausnahmefällen ist es jedoch möglicherweise nicht möglich, das Back-End zu reparieren oder den API-Proxy so zu ändern, dass dieses Problem nicht sofort behoben wird.

In diesen Fällen können Sie den Header „ignorieren zulassen“ für das 405-Attribut HTTP.ignore.allow_header.for.405 vorübergehend auf Message Processor-Ebene festlegen. Wenn Sie dieses Attribut auf true festlegen, kann Apigee die 502 Bad Gateway-Antwort auch dann nicht an Clientanwendungen zurückgeben, wenn der Back-End-Server den HTTP-Statuscode 405 Method Not Allowed ohne den Header Allow sendet.

Sobald Ihr Back-End-Server 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 sich mit den folgenden Themen vertraut machen:

Konfigurieren des Ignorieren-Allow-Headers für die Eigenschaft 405 auf "true" auf Message Processors

In Apigee Edge ist das Attribut HTTP.ignore.allow_header.for.405 standardmäßig auf false festgelegt. Dadurch kann Apigee Edge die 502 Bad Gateway mit dem Fehlercode protocol.http.Response405WithoutAllowHeader an die Clientanwendungen zurückgeben, wenn der Back-End-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 des Attributs HTTP.ignore.allow_header.for.405 bei den Message Processorn auf true setzen.

In diesem Abschnitt wird erläutert, wie Sie das Attribut HTTP.ignore.allow_header.for.405 auf true auf den Message Processors unter Verwendung des Tokens gemäß der Syntax konfigurieren, die unter Edge konfigurieren beschrieben wird.

  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
    

    Wenn Sie die Datei z. B. mit vi öffnen möchten, geben Sie Folgendes ein:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. Fügen Sie der Eigenschaftendatei eine Zeile im folgenden Format hinzu:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Speichern Sie die Änderungen.
  4. Prüfen Sie, ob der Inhaber der Property-Datei dem apigee-Nutzer ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Starten Sie den Message Processor wie unten gezeigt neu:
    /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 Processor.

Die Überprüfung des Ignorieren-Allow-Headers für die 405-Property ist bei Message Processors auf „true“ gesetzt

In diesem Abschnitt wird erläutert, wie Sie überprüfen können, ob die Eigenschaft HTTP.ignore.allow_header.for.405 auf den Message Processorn auf true aktualisiert wurde.

Obwohl Sie das Token conf_http_HTTP.ignore.allow_header.for.405 verwenden, um den Wert der Eigenschaft im Message Processor zu aktualisieren, müssen Sie überprüfen, ob die tatsächliche Eigenschaft 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 dem Attribut HTTP.ignore.allow_header.for.405 und prüfen Sie, ob es wie unten gezeigt auf true gesetzt wurde:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. Wenn das Attribut erfolgreich auf dem Message Processor aktualisiert wurde, sollte der obige Befehl den Wert des Attributs HTTP.ignore.allow_header.for.405 als true in der Datei http.properties anzeigen, wie unten dargestellt:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Wenn für das Attribut HTTP.ignore.allow_header.for.405 immer noch der Wert false angezeigt wird, prüfen Sie, ob Sie alle Schritte unter Ignorier-allow-Header für 405-Attribut in Message Processors auf „true“ konfigurieren ausgeführt haben. Wenn Sie einen Schritt ausgelassen haben, wiederholen Sie alle Schritte korrekt.
  4. Wenn Sie das Attribut HTTP.ignore.allow_header.for.405 immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.

Konfigurieren des Ignorieren-Allow-Headers für die 405-Eigenschaft auf „false“ für Message Processors

In diesem Abschnitt wird erläutert, wie Sie die Eigenschaft HTTP.ignore.allow_header.for.405 auf dem Message Processor auf den Standardwert false konfigurieren. Verwenden Sie dazu das Token gemäß der unter Edge konfigurieren beschriebenen Syntax.

  1. Prüfen Sie, ob die Property HTTP.ignore.allow_header.for.405 zu true geändert 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 das Attribut im Message Processor auf true gesetzt ist, sollte der obige Befehl den Wert der Eigenschaft HTTP.ignore.allow_header.for.405 als true in der Datei http.properties anzeigen, wie unten dargestellt:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Wenn mit dem obigen Befehl das Attribut HTTP.ignore.allow_header.for.405 auf false (Standardwert) festgelegt ist, müssen Sie nichts weiter tun. Überspringen Sie also die folgenden Schritte.
  4. Wenn das Attribut HTTP.ignore.allow_header.for.405 auf true gesetzt ist, führe die folgenden Schritte aus, um den Standardwert false wiederherzustellen.
  5. Öffnen Sie auf dem Message Processor-Computer die folgende Datei in einem Editor:

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

    Wenn Sie die Datei z. B. mit vi öffnen möchten, geben Sie Folgendes ein:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. Entfernen Sie die folgende Zeile aus der Eigenschaftsdatei:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Speichern Sie die Änderungen.
  8. Prüfen Sie, ob der Inhaber der Property-Datei dem apigee-Nutzer ist (siehe unten):
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Starten Sie den Message Processor wie unten gezeigt neu:
    /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 Processor.

Die Überprüfung des Ignorieren-Allow-Headers für die 405-Property ist bei Message Processors auf "false" gesetzt.

In diesem Abschnitt wird erläutert, wie Sie überprüfen können, ob die Eigenschaft HTTP.ignore.allow_header.for.405 auf den Message Processorn auf false aktualisiert wurde.

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

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