Documentazione dell'infrastruttura Oracle Cloud


Passa al contenuto principale

Le intestazioni inoltrate e correlate all'host inviate ai backend HTTP non corrispondono alle aspettative del backend

Scopri come risolvere i problemi delle intestazioni inoltrate e correlate all'host inviate ai backend HTTP durante la chiamata delle API, dopo aver creato correttamente gateway API e distribuzioni API con il servizio Gateway API.

Utilizzare questo argomento per risolvere i problemi relativi alle intestazioni inoltrate e correlate all'host che un backend HTTP riceve tramite il gateway API. I valori di intestazione possono influire sui reindirizzamenti, sulla generazione di URL, sulla logica di controllo dell'accesso e sull'instradamento dell'applicazione.

Il gateway API aggiunge alcune intestazioni di inoltro, conserva alcuni valori forniti dal client, aggiunge valori ad alcune catene di intestazioni e riscrive l'intestazione Host per la destinazione backend. Verificare le intestazioni ricevute dal backend prima di modificare la logica dell'applicazione o la configurazione della distribuzione.

Sintomi problema

Potresti vedere uno o più dei seguenti sintomi:

  • Il servizio backend prevede Forwarded: host=<client-hostname>, ma manca il valore.

  • Il servizio backend riceve solo Forwarded: for=... voci.

  • Il servizio backend riceve il nome host di destinazione backend nell'intestazione Host anziché il nome host rivolto al client.

  • I reindirizzamenti, gli URL generati o la logica di controllo dell'accesso basata su host funzionano in modo diverso dopo che l'API è posizionata dietro il gateway API.

  • Il servizio backend riceve più valori Forwarded o X-Forwarded-For e l'applicazione gestisce un solo valore.

Cause possibili

Le corrispondenze di intestazione inoltrate e host possono verificarsi per i seguenti motivi:

  • L'applicazione prevede Forwarded: host=... o Forwarded: proto=..., ma API Gateway aggiunge solo una voce for=... per impostazione predefinita.

  • L'applicazione legge l'intestazione Host, ma il gateway API riscrive l'intestazione per la destinazione backend.

  • L'applicazione prevede un singolo valore di inoltro, ma la richiesta contiene una catena di inoltro.

  • La distribuzione non include una trasformazione dell'intestazione della richiesta che passa l'host rivolto verso il client al backend.

Comprendere il funzionamento dell'intestazione inoltrata

Per i backend HTTP, il gateway API aggiunge intestazioni di richiesta contenenti informazioni sull'IP client.

La richiesta al backend può includere le intestazioni riportate di seguito.

  • X-Real-IP

  • Forwarded

  • X-Forwarded-For

  • User-Agent: Oracle API Gateway

Il valore Forwarded predefinito è una voce for=.... Il gateway API non aggiunge automaticamente valori host=... o proto=... all'intestazione Forwarded.

Se il client invia intestazioni di inoltro esistenti, API Gateway conserva tali valori e aggiunge le proprie informazioni IP client. Il back end può quindi ricevere una catena di valori Forwarded o X-Forwarded-For.

Comprendere il funzionamento dell'intestazione host

Per i backend HTTP, l'intestazione Host nella richiesta al backend non è l'host originale rivolto al client per impostazione predefinita. Il gateway API riscrive l'intestazione Host per la destinazione backend.

Se l'applicazione richiede l'host rivolto al client, configurare una trasformazione dell'intestazione della richiesta che copia il valore Host in entrata in un'intestazione letta dall'applicazione. Ad esempio, utilizzare la variabile di contesto request.host per copiare l'host in entrata in X-Forwarded-Host o in un'intestazione specifica dell'applicazione.

Non fare affidamento sull'intestazione Host della richiesta backend per preservare il nome host esterno.

Revisione intestazioni ricevute

Ripetere la richiesta tramite API Gateway e ispezionare le intestazioni ricevute dal back-end.

Rivedere i seguenti valori di intestazione:

  • L'intestazione Forwarded visibile nel backend.

  • L'intestazione X-Forwarded-For visibile nel backend.

  • L'intestazione Host visibile nel backend.

  • L'intestazione X-Forwarded-Host visibile backend, se l'instradamento utilizza tale intestazione.

  • Qualsiasi intestazione personalizzata creata dalla distribuzione dal valore Host in entrata.

Se possibile, utilizzare un endpoint temporaneo che richiama le intestazioni delle richieste. La risposta ripetuta mostra i valori di intestazione arrivati al back-end.

Analisi della configurazione della distribuzione

Rivedere la configurazione di distribuzione API nel gateway API per identificare l'instradamento corrispondente e le trasformazioni dell'intestazione della richiesta in tale instradamento.

Confermare i seguenti valori di configurazione:

  • Il valore backend.url dell'instradamento.

  • Il valore routes.path corrispondente alla richiesta.

  • Trasformazioni dell'intestazione della richiesta nell'instradamento corrispondente.

Se il back-end dipende dal nome host rivolto al client, confermare che l'instradamento copia il valore Host in entrata in un'intestazione che il back-end può leggere.

Se il backend dipende da Forwarded: host=..., confermare che la propria strategia di intestazione imposta tale valore. Non presumere che il gateway API crei automaticamente il valore.

Risoluzione dei problemi relativi all'intestazione inoltrata e host

Applicare la correzione che corrisponde al valore dell'intestazione richiesto dal backend:

  • Se il backend può utilizzare X-Forwarded-Host, configurare l'instradamento per inviare l'intestazione e aggiornare l'applicazione per leggerla.

  • Se il backend richiede l'host rivolto al client in un'intestazione personalizzata, creare una trasformazione dell'intestazione della richiesta dal valore Host in entrata.

  • Se il backend prevede Forwarded: host=..., aggiornare l'applicazione in modo che utilizzi le intestazioni fornite da API Gateway oppure aggiungere una strategia di intestazione esplicita che l'applicazione può utilizzare.

  • Se il backend analizza solo un valore Forwarded o X-Forwarded-For, aggiornare l'applicazione per gestire una catena di inoltro.

Verifica intestazioni inoltrate e host

Dopo aver aggiornato la distribuzione o la logica dell'applicazione, ripetere la richiesta e verificare il risultato.

Confermare i seguenti risultati:

  • Il backend riceve il valore host previsto per il client nell'intestazione configurata.

  • Il backend gestisce correttamente più valori Forwarded o X-Forwarded-For.

  • I reindirizzamenti, gli URL generati e la logica basata su host utilizzano il nome host e lo schema previsti.

  • La logica di controllo dell'accesso basata su host restituisce la risposta prevista.

Per ulteriori informazioni

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.

  • Aggiunta di un URL HTTP o HTTPS come backend del gateway API

  • Trasformazione delle richieste in entrata e delle risposte in uscita

  • Aggiunta di variabili di contesto a criteri e definizioni backend HTTP

  • Errori vari durante la chiamata delle API

  • Copyright © 2026, Oracle and/or its affiliates.
  • Informazioni su Oracle
  • Contattaci
  • Note legali
  • Condizioni d'uso e riservatezza
  • Convenzioni utilizzate nel documento