Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Nella comunicazione client-server, il 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
rispondi con il codice di stato HTTP 405 Method Not Allowed.
Apigee Edge si aspetta che il server di backend invii 405 Method Not Allowed
risposte
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 tuo server di backend consente GET
, POST
e
HEAD
metodi, devi assicurarti che siano contenuti nell'intestazione Allow
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
al
un'applicazione client. La soluzione consigliata per risolvere questo errore è
per correggere il server di backend in modo che aderisca alla specifica
RFC 7231, sezione 6.5.5: 405 Method Not Allowed o utilizza la gestione dei guasti per
rispondi con il codice di stato HTTP 405 Method Not Allowed
, che include
Intestazione Allow
come spiegato nella guida pratica per la risoluzione dei problemi
502 Bad Gateway - Risposta 405 senza intestazione Consenti.
Tuttavia, in alcuni casi eccezionali, potrebbe non essere possibile correggere il backend o modificare API Proxy per risolvere immediatamente il problema.
In questi casi, puoi impostare l'intestazione Ignora consenti per la proprietà 405
HTTP.ignore.allow_header.for.405
al
Livello temporaneo del 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
invia il codice di stato HTTP 405 Method Not Allowed
senza
Allow
intestazione.
Quando sei in grado di correggere il tuo server di backend per inviare il codice di stato HTTP 405 Method
Not Allowed
con l'intestazione Allow
, puoi ripristinare la proprietà
HTTP.ignore.allow_header.for.405
al valore predefinito false
.
Prima di iniziare
Prima di seguire la procedura descritta in questo documento, assicurati di aver compreso i seguenti argomenti:
- Leggi il Playbook - 502 Gateway non valido - risposta 405 senza intestazione Consenti.
- Se non hai familiarità con la configurazione delle proprietà per Edge su Private Cloud, leggi Come configurare Edge.
Configurazione di Ignora allow header 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. Ciò consente ad Apigee Edge di restituire 502 Bad
Gateway
con il codice di errore protocol.http.Response405WithoutAllowHeader
alla
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
inviando 502 Bad Gateway
alle applicazioni client, devi impostare il valore
la proprietà HTTP.ignore.allow_header.for.405
a true
nella
Processori.
Questa sezione spiega come configurare la proprietà
Da HTTP.ignore.allow_header.for.405
a true
il giorno
Processori di messaggi, utilizzando il token secondo la sintassi descritta in
.
Come configurare Edge.
-
Sul computer del processore di messaggi, apri il file seguente in un editor. In caso contrario esiste già, quindi lo creeremo.
/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.
- Verifica che il file delle proprietà appartenga all'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 utilizzi più di un processore di messaggi, ripeti i passaggi precedenti su tutte le Processori.
La verifica dell'intestazione Ignora consenti 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
è stato aggiornato a true
dei processori di messaggi.
Anche se utilizzi il token conf_http_HTTP.ignore.allow_header.for.405
per l'aggiornamento
il valore della proprietà sul processore di messaggi, devi verificare se la proprietà effettiva
HTTP.ignore.allow_header.for.405
impostato su true
.
- Cerca la proprietà sul computer
HTTP.ignore.allow_header.for.405
in directory/opt/apigee/edge-message-processor/conf
e controlla se è stato impostato 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 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 viene ancora visualizzato il valore per la proprietà
HTTP.ignore.allow_header.for.405
comefalse
verifica di aver seguito tutti i passaggi descritti nella Configura il valore "ignora" dell'intestazione allow per la proprietà 405 su true in Processori di messaggi correttamente. Se hai saltato un passaggio, ripeti l'operazione di nuovo. in modo corretto. - Se non riesci ancora a modificare la proprietà
HTTP.ignore.allow_header.for.405
, quindi contatta l'assistenza Apigee Edge.
Configurazione di "ignora allow header" per la proprietà 405 su false nei processori di messaggi
Questa sezione spiega come configurare la proprietà
HTTP.ignore.allow_header.for.405
al valore predefinito false
sul processore di messaggi, utilizzando il token secondo la sintassi descritta in
Come configurare Edge.
- Verifica se la proprietà
HTTP.ignore.allow_header.for.405
è stata modificata intrue
. Puoi farlo cercando questa proprietà nella directory/opt/apigee/edge-message-processor/conf
e controllare 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 precedente 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 precedente indica che la proprietà
HTTP.ignore.allow_header.for.405
è impostato sufalse
(valore predefinito), non devi fare altro. Vale a dire che ignora i seguenti passaggi. - Se la proprietà
HTTP.ignore.allow_header.for.405
è impostata sutrue
, quindi segui questi passaggi per ripristinare il valore predefinitofalse
. Sul computer del processore di messaggi, apri il file seguente 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.
- Verifica che il file delle proprietà appartenga all'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 utilizzi più di un processore di messaggi, ripeti i passaggi precedenti su tutte le Processori.
La verifica dell'intestazione Ignora consenti per la proprietà 405 è impostata su false nei processori di messaggi
Questa sezione spiega come verificare che la proprietà
HTTP.ignore.allow_header.for.405
è stato aggiornato a false
dei processori di messaggi.
Anche se utilizzi il token
conf_http_HTTP.ignore.allow_header.for.405
per aggiornare il valore nel messaggio
Processore, devi verificare se la proprietà effettiva HTTP.ignore.allow_header.for.405
è stata impostata su false
.
- Cerca la proprietà sul computer
HTTP.ignore.allow_header.for.405
nella directory/opt/apigee/edge-message- processor/conf
e controlla se è stato impostato sufalse
come mostrato sotto: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 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 viene ancora visualizzato il valore per la proprietà
HTTP.ignore.allow_header.for.405
cometrue
, quindi verifica di aver seguito tutti i passaggi descritti nella . Configurazione di Ignora allow header per la proprietà 405 su false nei processori di messaggi in modo corretto. Se hai saltato qualche passaggio, ripeti tutti i passaggi correttamente. - Se non riesci ancora a modificare la proprietà
HTTP.ignore.allow_header.for.405
, quindi contatta l'assistenza Apigee Edge.