Questa pagina si applica a Apigee e Apigee ibridi.
Visualizza documentazione di Apigee Edge.
Questo argomento descrive le proprietà di trasporto che possono essere impostate nelle configurazioni TargetEndpoint
e ProxyEndpoint
per controllare il comportamento della messaggistica e della connessione. Per una copertura completa
TargetEndpoint
e ProxyEndpoint
, consulta le informazioni di riferimento sulla configurazione del proxy API.
Proprietà di trasporto TargetEndpoint
Elemento HTTPTargetConnection
nelle configurazioni TargetEndpoint
definisce un insieme di valori HTTP
proprietà di trasporto. Puoi utilizzare queste proprietà per impostare le configurazioni a livello di trasporto.
Le proprietà vengono impostate sugli elementi TargetEndpoint
HTTPTargetConnection
come mostrato in questa configurazione di esempio:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Proprietà di trasporto TargetEndpoint Specifiche
Nome proprietà | Valore predefinito | Descrizione |
---|---|---|
allow.post.without.content.length |
falso | Ti consente di inviare richieste POST senza contenuti nel corpo. |
allow.put.without.content.length |
falso | Consente di inviare richieste PUT senza contenuti nel corpo. |
allow.tls.session.resumption |
true | Se i client true (predefinito) riutilizzano le sessioni TLS quando si effettuano nuove connessioni alla destinazione.
Imposta false se non vuoi il riutilizzo della sessione TLS. Riutilizzo della sessione in generale
significa tempi di connessione più brevi, ma alcune destinazioni potrebbero non supportare il riutilizzo delle sessioni o avere
problemi. |
keepalive.timeout.millis |
60.000 | Timeout di inattività della connessione per la connessione di destinazione nel pool di connessioni. Se nel pool è inattiva oltre il limite specificato, la connessione viene chiuso. |
connect.timeout.millis |
3000 |
Timeout connessione di destinazione. Apigee restituisce un codice di stato HTTP |
ignore.allow.header.for.405 |
true |
Ti consente di ritrasmettere il codice di stato 405 al client. Se attivi il flag, Apigee restituirà il codice di stato 405 anziché 502. |
io.timeout.millis |
55000 |
Se non sono presenti dati da leggere per il numero di millisecondi specificato o se il socket non è pronto per scrivere dati per un numero di millisecondi specificato, la transazione viene trattata come un timeout.
|
supports.http11 |
true | Se il valore è true e il client invia una richiesta 1.1 , al target viene inviata anche una richiesta
1.1
, altrimenti al target viene inviata la richiesta 1.0 . |
use.proxy |
true | Questa proprietà si applica solo ad Apigee hybrid.
Se il file degli override ibridi di Apigee contiene la configurazione
Se impostato su |
use.proxy.tunneling |
true |
Questa proprietà si applica solo ad Apigee Hybrid. Se questo valore è impostato su true e le configurazioni proxy sono specificate nel file di override Apigee hybrid come descritto in Configurare il proxy in avanti per i proxy API, le connessioni target sono impostate per utilizzare il tunnel specificato. Se il target utilizza TLS/SSL, questa proprietà viene ignorata e il messaggio viene sempre inviato utilizzando un tunnel. |
request.streaming.enabled |
falso |
Per impostazione predefinita ( |
response.streaming.enabled |
falso |
Per impostazione predefinita (false), i payload delle risposte HTTP vengono letti in un buffer e i criteri che
possono operare sul lavoro del payload come previsto. Se i payload sono più grandi
delle dimensioni del buffer (10 MB in Apigee), puoi impostare questo
attributo su true. Se true, i payload della risposta HTTP non vengono letti nel buffer; sono
trasmesso così com'è al flusso di risposta |
success.codes |
N/D |
Per impostazione predefinita, Apigee considera il codice HTTP L'impostazione di questa proprietà sostituisce i valori predefiniti. Pertanto, se vuoi aggiungere
il codice HTTP
Se vuoi che solo il codice HTTP
Se imposti il codice HTTP |
compression.algorithm |
N/D |
Per impostazione predefinita, Apigee rispetta il tipo di compressione impostato (gzip, deflate o nessuno) per i messaggi
ricevuto. Se la richiesta viene ricevuta dal client utilizzando, ad esempio, la compressione gzip, Apigee la inoltra al target utilizzando la compressione gzip. Se la risposta ricevuta dal target utilizza deflate, Apigee inoltra la risposta al client utilizzando deflate. I valori supportati sono:
Vedi anche: Apigee supporta la compressione/decompressione con compressione GZIP/deflate? |
request.retain.headers. |
true | Per impostazione predefinita, Apigee conserva sempre tutte le intestazioni HTTP sui messaggi in uscita. Se impostato su true , tutte le intestazioni HTTP presenti nella richiesta in entrata vengono impostate nella richiesta in uscita. |
request.retain.headers |
N/D | Definisce le intestazioni HTTP specifiche della richiesta che devono essere impostate sulla richiesta
richiesta al servizio di destinazione. Ad esempio, per eseguire il passthrough di User-Agent
imposta il valore di request.retain.headers su User-Agent .
Più intestazioni HTTP sono specificate come elenco separato da virgole, ad esempio
User-Agent,Referer,Accept-Language . Questa proprietà sostituisce
request.retain.headers.enabled . Se request.retain.headers.enabled
è impostato su false , le intestazioni specificate nella proprietà
request.retain.headers rimangono impostate sul messaggio in uscita. |
response.retain.headers. |
true | Per impostazione predefinita, Apigee conserva sempre tutte le intestazioni HTTP sui messaggi in uscita. Se impostato
a true , tutte le intestazioni HTTP presenti nella risposta in entrata dalla destinazione
vengono impostati nella risposta in uscita prima che venga passata
ProxyEndpoint . |
response.retain.headers |
N/D | Definisce intestazioni HTTP specifiche della risposta che devono essere impostate sulla risposta in uscita prima che venga passata a ProxyEndpoint . Ad esempio, per
passthrough
Expires , imposta il valore di response.retain.headers su
Expires . Più intestazioni HTTP sono specificate come elenco separato da virgole, ad esempio Expires,Set-Cookie . Questa proprietà sostituisce
response.retain.headers.enabled . Se
response.retain.headers.enabled è impostato su false , qualsiasi intestazione
specificate nella proprietà response.retain.headers siano ancora impostate nel
messaggio in uscita. |
retain.queryparams. |
true | Per impostazione predefinita, Apigee conserva sempre tutti parametri di ricerca nelle richieste in uscita. Se impostato su true , tutti i parametri di query presenti nella richiesta in entrata vengono impostati nella richiesta in uscita al servizio di destinazione. |
retain.queryparams |
N/D | Definisce parametri di query specifici da impostare nella richiesta in uscita. Ad esempio, per includere il parametro di query apikey dal messaggio di richiesta, imposta retain.queryparams su apikey . Più parametri di query vengono
specificati come elenco separato da virgole, ad esempio apikey,environment . Questo
sostituisce retain.queryparams.enabled . |
Proprietà di trasporto ProxyEndpoint
Gli elementi ProxyEndpoint
HTTPTargetConnection
definiscono un insieme di proprietà di trasporto HTTP. Queste proprietà possono essere utilizzate per impostare configurazioni a livello di trasporto.
Le proprietà sono impostate su ProxyEndpoint
elementi HTTPProxyConnection
come mostrato in questa configurazione di esempio:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="request.streaming.enabled">true</Property> </Properties> </HTTPProxyConnection> </ProxyEndpoint>
Intestazioni delle richieste
Una richiesta HTTP in arrivo include le intestazioni HTTP inviate dal client.
Le intestazioni con nomi corrispondenti al pattern X-Apigee-*
verranno rimosse dalla cartella In entrata
se vengono inviate da un client. Questo pattern del nome è riservato ad Apigee.
Specifica della proprietà di trasporto ProxyEndpoint
Nome proprietà | Valore predefinito | Descrizione |
---|---|---|
X-Forwarded-For |
falso | Se impostato su true, l'indirizzo IP dell'host virtuale viene aggiunto alla richiesta in uscita come valore dell'intestazione HTTP X-Forwarded-For . |
request.streaming. |
false |
Per impostazione predefinita (false ), i payload delle richieste HTTP vengono letti in un buffer e
criteri che possono
di eseguire operazioni sul carico utile come previsto. Nei casi in cui i payload siano maggiori rispetto
del buffer (10 MB in Apigee), puoi impostarla
a true . Quando true , i payload delle richieste HTTP non vengono letti
in un buffer, ma vengono
trasmessi così come sono al flusso di richieste TargetEndpoint . In questo caso, qualsiasi criterio
che operano
sul payload nel flusso di richiesta ProxyEndpoint . Vedi anche
Richieste di streaming
risposte personalizzate. |
response.streaming. |
false |
Per impostazione predefinita (false), i payload delle risposte HTTP vengono letti in un buffer e i criteri che
possono operare sul lavoro del payload come previsto. Nei casi in cui i payload siano maggiori di
dimensione del buffer (10 MB in Apigee), puoi impostare
a true . Quando true , i payload delle risposte HTTP non vengono letti
in un buffer, ma vengono
trasmessi così come sono al client. In questo caso, tutti i criteri che operano sul payload nel
flusso di risposta ProxyEndpoint vengono ignorati. Vedi anche
Richieste di streaming
risposte personalizzate. |
compression.algorithm |
N/D |
Per impostazione predefinita, Apigee rispetta il tipo di compressione impostato (gzip, deflate o nessuno) per i messaggi ricevuti. Ad esempio, se un client invia una richiesta che utilizza la compressione gzip, Apigee inoltra la richiesta al target utilizzando la compressione gzip. Puoi configurare gli algoritmi di compressione
da applicare esplicitamente impostando questa proprietà su
Vedi anche: Apigee supporta la compressione/decompressione con compressione GZIP/deflate? |
api.timeout |
N/D |
Configura il timeout per i singoli proxy API (in millisecondi) Puoi configurare proxy API, anche quelli con
streaming abilitato,
la scadenza del periodo di tempo specificato con stato
Ad esempio, per configurare un proxy in modo che scada dopo 180000 millisecondi (tre minuti),
aggiungi la seguente proprietà a <Property name="api.timeout">180000</Property> Non puoi impostare questa proprietà con una variabile. |
HTTPHeader.allowDuplicates |
N/D | Utilizza questa impostazione per consentire intestazioni duplicate (per intestazioni specifiche). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.allowDuplicates">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
HTTPHeader.multiValued |
N/D | Utilizza questa impostazione per consentire intestazioni duplicate (per intestazioni specifiche). <HTTPProxyConnection> <Properties> <Property name="HTTPHeader.multiValued">Content-Type,Authorization</Property> </Properties> </HTTPProxyConnection> |
Impostazione di io.timeout.millis e api.timeout
Il funzionamento di io.timeout.millis
e api.timeout
è correlato. Per ogni richiesta a un proxy API:
- Ingress (noto anche come bilanciatore del carico interno) invia il proprio valore di timeout al processore di messaggi. Questo valore di timeout è di 300 secondi per impostazione predefinita e non è configurabile.
- Il processore di messaggi imposta quindi
api.timeout
:- Se
api.timeout
non è impostato a livello di proxy, utilizza il timeout impostato da Ingress. - Se
api.timeout
è impostato a livello di proxy, impostalo sul Processore messaggi sul valore minore del timeout di ingresso o del valore diapi.timeout
.
- Se
-
Il valore di
api.timeout
specifica il tempo massimo di esecuzione di un proxy API dalla richiesta API alla risposta.Dopo l'esecuzione di ogni criterio nel proxy API, o prima che il processore di messaggi invii la richiesta all'endpoint di destinazione, il processore di messaggi calcola (
api.timeout
- tempo trascorso dall'inizio del richiesta).Se il valore è inferiore a zero, la quantità massima di tempo per gestire la richiesta è scaduto e il processore di messaggi restituisce un
504 Gateway Timeout
. -
Il valore di
io.timeout.millis
specifica il tempo massimo entro il quale l'endpoint di destinazione deve rispondere.Prima di connettersi a un endpoint di destinazione, il processore di messaggi determina il minore tra (
api.timeout
- tempo trascorso dall'inizio della richiesta) eio.timeout.millis
. Imposta quindiio.timeout.millis
su quel valore.Se si verifica un timeout durante la scrittura della richiesta HTTP o la lettura della risposta HTTP, viene restituito
504 Gateway Timeout
.