Configurazione dell'intestazione da ignorare per la proprietà 405 negli elaboratori dei messaggi

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:

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 truenella 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.

  1. 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
    
  2. Aggiungi una riga nel seguente formato al file delle proprietà:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. Salva le modifiche.
  4. Verifica che il file delle proprietà appartenga all'utente apigee, come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. Riavvia il processore di messaggi come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 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.

  1. Cerca la proprietà sul computer HTTP.ignore.allow_header.for.405 in directory /opt/apigee/edge-message-processor/conf e controlla se è stato impostato su true come mostrato di seguito:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. 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 come true nel file http.properties come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se viene ancora visualizzato il valore per la proprietà HTTP.ignore.allow_header.for.405 come false 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.
  4. 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.

  1. Verifica se la proprietà HTTP.ignore.allow_header.for.405 è stata modificata in true. 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
    
  2. 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 come true nel file http.properties come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. Se il comando precedente indica che la proprietà HTTP.ignore.allow_header.for.405 è impostato su false (valore predefinito), non devi fare altro. Vale a dire che ignora i seguenti passaggi.
  4. Se la proprietà HTTP.ignore.allow_header.for.405 è impostata su true, quindi segui questi passaggi per ripristinare il valore predefinito false.
  5. 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
    
  6. Rimuovi la seguente riga dal file delle proprietà:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. Salva le modifiche.
  8. Verifica che il file delle proprietà appartenga all'utente apigee, come mostrato di seguito:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. Riavvia il processore di messaggi come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. 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.

  1. Cerca la proprietà sul computer HTTP.ignore.allow_header.for.405 nella directory /opt/apigee/edge-message- processor/conf e controlla se è stato impostato su false come mostrato sotto:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. 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 come false nel file http.properties come mostrato di seguito:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. Se viene ancora visualizzato il valore per la proprietà HTTP.ignore.allow_header.for.405 come true, 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.
  4. Se non riesci ancora a modificare la proprietà HTTP.ignore.allow_header.for.405, quindi contatta l'assistenza Apigee Edge.