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:
- Playbook lesen: 502 Bad Gateway – Response 405 without Allow header.
- Wenn Sie nicht mit dem Konfigurieren von Properties für Edge in der Private Cloud vertraut sind, lesen Sie den Artikel Edge konfigurieren.
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.
-
Ö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
- Fügen Sie der Property-Datei eine Zeile im folgenden Format hinzu:
conf_http_HTTP.ignore.allow_header.for.405=true
- Speichern Sie die Änderungen.
- Achten Sie darauf, dass die Property-Datei dem Nutzer
apigeegehört, wie unten gezeigt:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Starten Sie den Message Processor neu, wie unten gezeigt:
/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 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.
- Suchen Sie auf dem Message Processor-Computer im Verzeichnis
/opt/apigee/edge-message-processor/confnach der PropertyHTTP.ignore.allow_header.for.405und prüfen Sie, ob sie auftruegesetzt wurde, wie unten gezeigt:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Wenn die Property für den Message Processor erfolgreich aktualisiert wurde, sollte der obige Befehl
den Wert der Property
HTTP.ignore.allow_header.for.405alstruein der Dateihttp.propertiesanzeigen, wie unten gezeigt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Wenn der Wert für die Property
HTTP.ignore.allow_header.for.405immer nochfalseist, 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. - Wenn Sie die Property
HTTP.ignore.allow_header.for.405immer 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.
- Prüfen Sie, ob die Property
HTTP.ignore.allow_header.for.405auftruegesetzt wurde. Suchen Sie dazu im Verzeichnis/opt/apigee/edge-message-processor/confnach 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 die Property für den Message Processor auf
truegesetzt ist, sollte der obige Befehl den Wert der PropertyHTTP.ignore.allow_header.for.405in der Dateihttp.propertiesalstrueanzeigen, wie unten gezeigt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Wenn der obige Befehl zeigt, dass die Property
HTTP.ignore.allow_header.for.405auffalse(Standardwert) gesetzt ist, müssen Sie nichts weiter tun. Das heißt, überspringen Sie die folgenden Schritte. - Wenn die Property
HTTP.ignore.allow_header.for.405auftruegesetzt ist, führen Sie die folgenden Schritte aus, um sie auf den Standardwertfalsezurückzusetzen. Ö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
- Entfernen Sie die folgende Zeile aus der Property-Datei:
conf_http_HTTP.ignore.allow_header.for.405=true
- Speichern Sie die Änderungen.
- Achten Sie darauf, dass die Property-Datei dem Nutzer
apigeegehört, wie unten gezeigt:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Starten Sie den Message Processor neu, wie unten gezeigt:
/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 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.
- Suchen Sie auf dem Message Processor-Computer im
/opt/apigee/edge-message- processor/confVerzeichnis nach der PropertyHTTP.ignore.allow_header.for.405und prüfen Sie, ob sie auffalsegesetzt wurde, wie unten gezeigt:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Wenn die Property für den Message Processor erfolgreich aktualisiert wurde, sollte der obige Befehl
den Wert der Property
HTTP.ignore.allow_header.for.405alsfalsein derhttp.propertiesDatei anzeigen, wie unten gezeigt:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Wenn der Wert für die Property
HTTP.ignore.allow_header.for.405immer nochtrueist, 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. - Wenn Sie die Property
HTTP.ignore.allow_header.for.405immer noch nicht ändern können, wenden Sie sich an den Apigee Edge-Support.