Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Nella comunicazione client-server, un server risponde con il codice di stato HTTP 405
Method Not Allowed se il
metodo di richiesta HTTP presentato dal client è noto al server
ma non è supportato dalla risorsa di destinazione. Allo stesso modo, in Apigee Edge, il server di backend può
rispondere con il codice di stato HTTP 405 Method Not Allowed.
Apigee Edge si aspetta che il server di backend invii risposte 405 Method Not Allowed con l'elenco dei metodi consentiti nell'intestazione Allow, come da specifica
RFC 7231, sezione 6.5.5: 405 Method Not Allowed.
L'intestazione Allow deve essere inviata nel seguente formato:
Allow: HTTP_METHODS
Ad esempio, se il server di backend consente i metodi GET, POST e
HEAD, devi assicurarti che l'intestazione Allow li contenga
come segue:
Allow: GET, POST, HEAD
Se il server di backend non invia l'intestazione Allow con il codice di stato HTTP
405 Method Not Allowed, Apigee restituisce il codice di stato HTTP 502 Bad
Gateway con il codice di errore protocol.http.Response405WithoutAllowHeader all'
applicazione client. La soluzione consigliata per risolvere questo errore è
correggere il server di backend in modo che rispetti la specifica
RFC 7231, sezione 6.5.5: 405 Method Not Allowed o utilizzare la gestione degli errori per
rispondere con il codice di stato HTTP 405 Method Not Allowed inclusa l'
Allow intestazione, come spiegato nel playbook per la risoluzione dei problemi
502 Bad Gateway - Response 405 without Allow header.
Tuttavia, in alcuni casi eccezionali, potrebbe non essere possibile correggere immediatamente il backend o modificare il proxy API per risolvere questo problema.
In questi casi, puoi impostare temporaneamente l'intestazione di autorizzazione di ignoranza per la 405 proprietà
HTTP.ignore.allow_header.for.405 a livello di
processore di messaggi. Se imposti questa proprietà su true, Apigee
non restituisce la risposta 502 Bad Gateway alle applicazioni client, anche se il
server di backend invia il codice di stato HTTP 405 Method Not Allowed senza l'
intestazione Allow.
Quando puoi correggere il server di backend in modo che invii il codice di stato HTTP 405 Method
Not Allowed con l'intestazione Allow, puoi ripristinare il valore predefinito false della proprietà
HTTP.ignore.allow_header.for.405.
Prima di iniziare
Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:
- Leggi il playbook - 502 Bad Gateway - response 405 without Allow header.
- Se non hai familiarità con la configurazione delle proprietà per Edge su Private Cloud, leggi Come configurare Edge.
Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su true in Message Processor
In Apigee Edge, la proprietà HTTP.ignore.allow_header.for.405 è impostata su
false per impostazione predefinita. In questo modo, Apigee Edge può restituire 502 Bad
Gateway con il codice di errore protocol.http.Response405WithoutAllowHeader alle
applicazioni client se il server di backend invia il codice di stato HTTP 405 Method Not
Allowed senza l'intestazione Allow. Se vuoi impedire ad Apigee Edge di
inviare 502 Bad Gateway alle applicazioni client, devi impostare il valore di
proprietà HTTP.ignore.allow_header.for.405 su true nei Message
Processor.
Questa sezione spiega come configurare la proprietà
HTTP.ignore.allow_header.for.405 su true nei
Message Processor, utilizzando il token in base alla sintassi descritta in
Come configurare Edge.
-
Nella macchina processore di messaggi, apri il seguente file in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/message-processor.properties
Ad esempio, per aprire il file utilizzando vi, inserisci quanto segue:
vi /opt/apigee/customer/application/message-processor.properties
- Aggiungi una riga nel seguente formato al file delle proprietà:
conf_http_HTTP.ignore.allow_header.for.405=true
- Salva le modifiche.
- Assicurati che il file delle proprietà sia di proprietà dell'utente
apigee, come mostrato di seguito:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Riavvia il processore di messaggi come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
Verificare che l'intestazione di autorizzazione di ignoranza per la proprietà 405 sia impostata su true in Message Processor
Questa sezione spiega come verificare che la proprietà
HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente su true
nei Message Processor.
Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405 per aggiornare il valore della proprietà nel processore di messaggi, devi verificare se la proprietà effettiva HTTP.ignore.allow_header.for.405 è stata impostata su true.
- Nella macchina processore di messaggi, cerca la proprietà
HTTP.ignore.allow_header.for.405nella/opt/apigee/edge-message-processor/confdirectory e verifica se è stata impostata sutruecome mostrato di seguito:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se la proprietà viene aggiornata correttamente nel processore di messaggi, il comando precedente dovrebbe mostrare il valore della proprietà
HTTP.ignore.allow_header.for.405cometruenel filehttp.properties, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se continui a visualizzare il valore della proprietà
HTTP.ignore.allow_header.for.405comefalseverifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su true in Message Processor. Se hai saltato un passaggio, ripeti correttamente tutti i passaggi. - Se non riesci ancora a modificare la proprietà
HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.
Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su false in Message Processor
Questa sezione spiega come configurare la proprietà
HTTP.ignore.allow_header.for.405 sul valore predefinito false
nel processore di messaggi, utilizzando il token in base alla sintassi descritta in
Come configurare Edge.
- Verifica se la proprietà
HTTP.ignore.allow_header.for.405è stata modificata sutrue. Puoi farlo cercando questa proprietà nella directory/opt/apigee/edge-message-processor/confe controllandone il valore utilizzando il seguente comando:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se la proprietà è impostata su
truenel processore di messaggi, il comando precedente dovrebbe mostrare il valore della proprietàHTTP.ignore.allow_header.for.405cometruenel filehttp.properties, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se il comando precedente mostra che la proprietà
HTTP.ignore.allow_header.for.405è impostata sufalse(valore predefinito), non devi fare altro. Ovvero, salta i passaggi seguenti. - Se la proprietà
HTTP.ignore.allow_header.for.405è impostata sutrue, segui questi passaggi per ripristinare il valore predefinitofalse. Nella macchina processore di messaggi, apri il seguente file in un editor:
/opt/apigee/customer/application/message-processor.properties
Ad esempio, per aprire il file utilizzando vi, inserisci quanto segue:
vi /opt/apigee/customer/application/message-processor.properties
- Rimuovi la seguente riga dal file delle proprietà:
conf_http_HTTP.ignore.allow_header.for.405=true
- Salva le modifiche.
- Assicurati che il file delle proprietà sia di proprietà dell'utente
apigee, come mostrato di seguito:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Riavvia il processore di messaggi come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- Se hai più di un processore di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
Verificare che l'intestazione di autorizzazione di ignoranza per la proprietà 405 sia impostata su false in Message Processor
Questa sezione spiega come verificare che la proprietà
HTTP.ignore.allow_header.for.405 sia stata aggiornata correttamente su false
nei Message Processor.
Anche se utilizzi il token
conf_http_HTTP.ignore.allow_header.for.405 per aggiornare il valore nel Message
Processor, devi verificare se la proprietà effettiva HTTP.ignore.allow_header.for.405
è stata impostata su false.
- Nella macchina processore di messaggi, cerca la proprietà
HTTP.ignore.allow_header.for.405nella directory/opt/apigee/edge-message- processor/confe verifica se è stata impostata sufalsecome mostrato di seguito:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se la proprietà viene aggiornata correttamente nel processore di messaggi, il comando precedente dovrebbe mostrare il valore della proprietà
HTTP.ignore.allow_header.for.405comefalsenel filehttp.properties, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Se continui a visualizzare il valore della proprietà
HTTP.ignore.allow_header.for.405cometrue, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione di autorizzazione di ignoranza per la proprietà 405 su false in Message Processor. Se hai saltato un passaggio, ripeti correttamente tutti i passaggi. - Se non riesci ancora a modificare la proprietà
HTTP.ignore.allow_header.for.405, contatta l'assistenza Apigee Edge.