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:
- Playbook lesen: 502 Bad Gateway – Response 405 without Allow header (502 Bad Gateway – Antwort 405 ohne Zulassungsliste).
- Wenn Sie mit dem Konfigurieren von Eigenschaften für Edge in der Private Cloud nicht vertraut sind, lesen Sie Edge konfigurieren.
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.
-
Ö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
- Fügen Sie der Eigenschaftendatei eine Zeile im folgenden Format hinzu:
conf_http_HTTP.ignore.allow_header.for.405=true
- Speichern Sie die Änderungen.
- 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
- Starten Sie den Message Processor wie unten gezeigt neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 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.
- Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message-processor/conf
nach dem AttributHTTP.ignore.allow_header.for.405
und prüfen Sie, ob es wie unten gezeigt auftrue
gesetzt wurde:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Wenn das Attribut erfolgreich auf dem Message Processor aktualisiert wurde, sollte der obige Befehl den Wert des Attributs
HTTP.ignore.allow_header.for.405
alstrue
in der Dateihttp.properties
anzeigen, wie unten dargestellt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Wenn für das Attribut
HTTP.ignore.allow_header.for.405
immer noch der Wertfalse
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. - 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.
- Prüfen Sie, ob die Property
HTTP.ignore.allow_header.for.405
zutrue
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
- Wenn das Attribut im Message Processor auf
true
gesetzt ist, sollte der obige Befehl den Wert der EigenschaftHTTP.ignore.allow_header.for.405
alstrue
in der Dateihttp.properties
anzeigen, wie unten dargestellt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Wenn mit dem obigen Befehl das Attribut
HTTP.ignore.allow_header.for.405
auffalse
(Standardwert) festgelegt ist, müssen Sie nichts weiter tun. Überspringen Sie also die folgenden Schritte. - Wenn das Attribut
HTTP.ignore.allow_header.for.405
auftrue
gesetzt ist, führe die folgenden Schritte aus, um den Standardwertfalse
wiederherzustellen. Ö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
- Entfernen Sie die folgende Zeile aus der Eigenschaftsdatei:
conf_http_HTTP.ignore.allow_header.for.405=true
- Speichern Sie die Änderungen.
- 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
- Starten Sie den Message Processor wie unten gezeigt neu:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 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.
- Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message- processor/conf
nach dem AttributHTTP.ignore.allow_header.for.405
und prüfen Sie, ob es wie unten gezeigt auffalse
gesetzt wurde:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Wenn das Attribut erfolgreich auf dem Message Processor aktualisiert wurde, sollte der obige Befehl den Wert des Attributs
HTTP.ignore.allow_header.for.405
alsfalse
in der Dateihttp.properties
anzeigen, wie unten dargestellt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Wenn der Wert für das Attribut
HTTP.ignore.allow_header.for.405
immer noch alstrue
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. - Wenn Sie das Attribut
HTTP.ignore.allow_header.for.405
immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.