Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
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. Analogamente, in Apigee Edge, il server di backend può rispondere con il codice di stato HTTP 405 Method Not Allowed.
Apigee Edge prevede che il server di backend invii risposte 405 Method Not Allowed
con l'elenco dei metodi consentiti nell'intestazione Allow
, secondo la 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 affinché rispetti la specifica
RFC 7231, sezione 6.5.5: 405 Method Not Allowed oppure utilizzare la gestione degli errori per rispondere con il codice di stato HTTP 405 Method Not Allowed
inclusa l'intestazione Allow
come spiegato nel playbook per la risoluzione dei problemi
502 Bad Gateway - Response 4.05 senza intestazione Consenti
Tuttavia, in alcuni casi eccezionali potrebbe non essere possibile correggere il backend o modificare il proxy API per risolvere il problema immediatamente.
In questi casi, puoi impostare temporaneamente l'intestazione di autorizzazione Ignora per la proprietà 405
HTTP.ignore.allow_header.for.405
a livello di Processore di messaggi. L'impostazione di questa proprietà su true
impedisce ad Apigee
di restituire 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 sei in grado di 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
per la proprietà
HTTP.ignore.allow_header.for.405
.
Prima di iniziare
Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:
- Leggi il Playbook - 502 Bad Gateway - Response 405 without allow header.
- Se non hai dimestichezza con la configurazione delle proprietà per Edge su Cloud privato, leggi Come configurare Edge.
Configurazione dell'intestazione Ignora autorizzazione per la proprietà 405 su true nei processori di messaggi
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 della proprietà HTTP.ignore.allow_header.for.405
su true
sui processori di messaggi.
Questa sezione spiega come configurare la proprietà
HTTP.ignore.allow_header.for.405
su true
sui
processori di messaggi, utilizzando il token secondo la sintassi descritta in
Come configurare Edge.
-
Nel computer del 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 disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
La verifica dell'opzione Ignora autorizzazione per la proprietà 405 è impostata su true nei processori di messaggi
Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405
sia stata aggiornata correttamente a true
sui processori di messaggi.
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 che la proprietà effettiva
HTTP.ignore.allow_header.for.405
sia stata impostata su true
.
- Nel computer del processore di messaggi, cerca la proprietà
HTTP.ignore.allow_header.for.405
nella directory/opt/apigee/edge-message-processor/conf
e controlla se è stata impostata sutrue
come mostrato di seguito:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se la proprietà viene aggiornata correttamente sul processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietà
HTTP.ignore.allow_header.for.405
cometrue
nel filehttp.properties
, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se vedi ancora il valore della proprietà
HTTP.ignore.allow_header.for.405
comefalse
, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione Ignora autorizzazione per la proprietà 405 su true nei processori di messaggi. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi. - Se ancora non riesci a modificare la proprietà
HTTP.ignore.allow_header.for.405
, contatta l'assistenza Apigee Edge.
Configurazione dell'intestazione Ignora autorizzazione per la proprietà 405 su false sui processori di messaggi
Questa sezione spiega come configurare la proprietà HTTP.ignore.allow_header.for.405
sul suo valore predefinito false
nel processore di messaggi, utilizzando il token secondo la sintassi descritta in Come configurare Edge.
- Verifica se la proprietà
HTTP.ignore.allow_header.for.405
viene modificata intrue
. A questo scopo, cerca questa proprietà nella directory/opt/apigee/edge-message-processor/conf
e controllane 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
true
nel processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietàHTTP.ignore.allow_header.for.405
cometrue
nel filehttp.properties
, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- Se il comando riportato sopra indica che la proprietà
HTTP.ignore.allow_header.for.405
è impostata sufalse
(valore predefinito), non devi fare altro. Ciò significa che ignora i seguenti passaggi. - Se la proprietà
HTTP.ignore.allow_header.for.405
è impostata sutrue
, segui questi passaggi per ripristinare il valore predefinitofalse
. Nel computer del 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 disponi di più processori di messaggi, ripeti i passaggi precedenti su tutti i processori di messaggi.
La verifica dell'opzione Ignora autorizzazione per la proprietà 405 è impostata su false sui processori di messaggi
Questa sezione spiega come verificare che la proprietà HTTP.ignore.allow_header.for.405
sia stata aggiornata correttamente a false
sui processori di messaggi.
Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405
per aggiornare il valore nel processore di messaggi, devi verificare che la proprietà effettiva HTTP.ignore.allow_header.for.405
sia stata impostata su false
.
- Nel computer del processore di messaggi, cerca la proprietà
HTTP.ignore.allow_header.for.405
nella directory/opt/apigee/edge-message- processor/conf
e controlla se è stata impostata sufalse
come mostrato di seguito:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- Se la proprietà viene aggiornata correttamente sul processore di messaggi, il comando riportato sopra dovrebbe mostrare il valore della proprietà
HTTP.ignore.allow_header.for.405
comefalse
nel filehttp.properties
, come mostrato di seguito:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- Se vedi ancora il valore della proprietà
HTTP.ignore.allow_header.for.405
cometrue
, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare l'intestazione di autorizzazione Ignora per la proprietà 405 su false sui processori di messaggi correttamente. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi. - Se ancora non riesci a modificare la proprietà
HTTP.ignore.allow_header.for.405
, contatta l'assistenza Apigee Edge.