Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Questo documento spiega come configurare il timeout di I/O sui router Apigee Edge.
Il timeout I/O sul router rappresenta il tempo durante il quale il router attende per ricevere un risposta dal processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al processore di messaggi. Il valore predefinito del timeout di I/O sul router è 57 secondi.
Il timeout I/O per i router può essere aumentato o diminuito rispetto al valore predefinito di 57 secondi in base alle tue esigenze. Può essere configurato nei seguenti modi:
- In un host virtuale
- Sul router
Le seguenti proprietà controllano il timeout di I/O sui router:
Nome proprietà | Località | Descrizione |
---|---|---|
proxy_read_timeout
|
Host virtuale |
Specifica il tempo massimo di attesa del router per ricevere una risposta dal Processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al Processore di messaggi. Se il processore di messaggi non risponde entro questo periodo di timeout, la Timeout del router. Per impostazione predefinita, questa proprietà utilizza il valore impostato per
proprietà Se questa proprietà viene modificata con un nuovo valore di timeout per un host virtuale specifico, sono interessati solo i proxy API che utilizzano quello specifico host virtuale. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout
|
Router |
Specifica il tempo massimo di attesa del router per ricevere una risposta dal Processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al Processore di messaggi. Se il processore di messaggi non risponde entro questo periodo di timeout, la Timeout del router. Questa proprietà viene utilizzata per tutti gli host virtuali su questo router. Il valore predefinito di questa proprietà è 57 secondi. Puoi modificare questa proprietà come spiegato in
Configura il timeout I/O sui router di seguito oppure puoi sovrascrivere
questo valore impostando la proprietà Puoi impostare l'intervallo di tempo per questa proprietà su un valore diverso dai secondi utilizzando il parametro seguente: ms: milliseconds s: seconds (default) m: minutes h: hours d: days w: weeks M: months (length of 30 days) y: years (length of 365 days) |
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout
|
Router |
Specifica il tempo totale di attesa del router per ricevere una risposta da tutti i messaggi Processori, dopo aver stabilito la connessione e inviato la richiesta a ciascun messaggio Processore. Questo è applicabile quando l'installazione Edge ha più processori di messaggi e la funzione di ripetizione sia abilitata quando si verificano errori. Ha il valore di uno dei seguenti:
Come per |
Prima di iniziare
Prima di seguire la procedura descritta in questo documento, assicurati di aver compreso i seguenti argomenti:
- Se non hai familiarità con le proprietà degli host virtuali, consulta Riferimento proprietà host virtuale.
- Se non hai familiarità con la configurazione delle proprietà per Edge su Private Cloud, leggi Come configurare Edge.
- Assicurati di seguire le Best practice per la configurazione dei consigli sul timeout di I/O.
Configurazione del timeout di I/O nell'host virtuale
Questa sezione spiega come configurare il timeout I/O nell'host virtuale associato a un
organizzazione e ambiente. Il timeout di I/O può essere configurato nell'host virtuale tramite
proxy_read_timeout
, che rappresenta il valore di timeout di I/O in secondi.
Puoi configurare l'host virtuale utilizzando uno dei seguenti metodi:
- UI Edge
- API Edge
UI Edge
Per configurare l'host virtuale utilizzando la UI Edge, segui questi passaggi:
- Accedi alla UI di Edge.
- Vai ad Amministrazione > Host virtuali.
- Seleziona un Ambiente specifico in cui vuoi apportare questa modifica.
- Seleziona l'host virtuale specifico per il quale vuoi configurare il nuovo Valore di timeout I/O.
- In Proprietà, aggiorna il valore Timeout lettura proxy in secondi.
Ad esempio, se vuoi impostare il timeout su 120 secondi, digita 120 come mostrato nella figura che segue:
- Salva la modifica.
API Edge
Per configurare l'host virtuale utilizzando l'API Edge, segui questi passaggi:
- Ottieni la configurazione attuale dell'host virtuale utilizzando
Scarica l'API virtual host come mostrato di seguito:
Utente cloud pubblico
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Utente Private Cloud
curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Dove:
{organization-name} è il nome dell'organizzazione
{environment-name} è il nome dell'ambiente
{virtualhost-name} è il nome dell'host virtuale
Esempio di configurazione di virtualhost
{ "hostAliases": [ "api.myCompany,com" ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- Aggiungi la proprietà
proxy_read_timeout
alla configurazione dell'host virtuale esistente Payload JSON inproperties
con il valore in secondi.Ad esempio, per impostare il timeout I/O su 120 secondi, aggiungi
properties
di codice come mostrato di seguito:Esempio di configurazione dell'host virtuale aggiornata
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
- Salva la configurazione dell'host virtuale aggiornata in un file. Ad esempio:
virtualhost-payload.json
. - Aggiorna la configurazione
virtualhost
con la modifica utilizzando il metodo Aggiorna un'API host virtuale come segue:Utente cloud pubblico
curl -v -X POST Content-Type: application/json https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Utente Private Cloud
curl -v -X POST Content-Type: application/json http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
Dove:
{organization-name} è il nome dell'organizzazione
{environment-name} è il nome dell'ambiente
{virtualhost-name} è il nome dell'host virtuale
Verifica del timeout di I/O sugli host virtuali
Questa sezione spiega come verificare che il timeout di I/O sia stato modificato correttamente un host virtuale con l'API Edge.
- Esegui la
Recupera l'API virtual host per ottenere la configurazione
virtualhost
come mostrato di seguito:Utente cloud pubblico
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Utente Private Cloud
curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
Dove:
{organization-name} è il nome dell'organizzazione
{environment-name} è il nome dell'ambiente
{virtualhost-name} è il nome dell'host virtuale
- Verifica che la proprietà
proxy_read_timeout
sia stata impostata sul nuovo valore.Esempio di configurazione dell'host virtuale aggiornata
{ "hostAliases": [ "api.myCompany,com", ], "interfaces": [], "listenOptions": [], "name": "secure", "port": "443", "retryOptions": [], "properties": { "property": [ { "name": "proxy_read_timeout", "value": "120" } ] }, "sSLInfo": { "ciphers": [], "clientAuthEnabled": "false", "enabled": "true", "ignoreValidationErrors": false, "keyAlias": "myCompanyKeyAlias", "keyStore": "ref://myCompanyKeystoreref", "protocols": [] }, "useBuiltInFreeTrialCert": false }
Nell'esempio precedente, nota che
proxy_read_timeout
è stato impostato con il nuovo valore di 120 secondi. - Se visualizzi ancora il valore precedente di
proxy_read_timeout,
, verifica di Aver seguito correttamente tutti i passaggi descritti in Configurare il timeout I/O nell'host virtuale. Se hai saltato qualche passaggio, ripeti tutti i passaggi correttamente. - Se non riesci ancora a modificare il timeout di I/O, contatta l'assistenza Apigee Edge.
Configurazione del timeout di I/O sui router
Questa sezione spiega come configurare il timeout I/O sui router. Il timeout di I/O può essere
configurato tramite la proprietà Router
conf_load_balancing_load.balancing.driver.proxy.read.timeout
, che rappresenta
il valore di timeout I/O in secondi.
Per configurare il timeout I/O sui router, segui questi passaggi:
- Sul computer router, apri il file seguente in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/router.properties
Ad esempio, per aprire il file con
vi
, inserisci questo comando:vi /opt/apigee/customer/application/router.properties
- Aggiungi al file
properties
una riga nel seguente formato, sostituendo un valore ditime_in_seconds
: - Salva le modifiche.
- Verifica che questo file delle proprietà appartenga all'utente
apigee
, come illustrato di seguito:chown apigee:apigee /opt/apigee/customer/application/router.properties
- Riavvia il router come mostrato di seguito:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- Se possiedi più di un router, ripeti i passaggi precedenti su tutti i router.
conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
Ad esempio, per impostare il timeout I/O sul router su 120 secondi, aggiungi la riga seguente:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
Puoi anche modificare il timeout I/O in minuti. Ad esempio, per modificare il timeout in minuti, aggiungi la riga seguente:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Verifica del timeout di I/O sui router
Questa sezione spiega come verificare che il timeout di I/O sia stato modificato correttamente Router.
Anche se utilizzi il token
conf_load_balancing_load.balancing.driver.proxy.read.timeout
per impostare il timeout I/O
sul router, devi verificare se la proprietà effettiva proxy_read_timeout
ha
sia stato impostato
con il nuovo valore.
- Cerca la proprietà
proxy_read_timeout
nel/opt/nginx/conf.d
e controlla se è stata impostata con nuovo valore come segue:grep -ri "proxy_read_timeout" /opt/nginx/conf.d
- Se il nuovo valore di timeout I/O viene impostato correttamente sul router, il comando precedente
mostra il nuovo valore in tutti i file di configurazione dell'host virtuale.
Di seguito è riportato un esempio di risultato del comando
grep
riportato sopra quando Il timeout I/O è di 120 secondi:/opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120; /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
Nell'output di esempio sopra riportato, puoi notare che la proprietà
proxy_read_timeout
è stato impostato con il nuovo valore 120 in0-default.conf
, che è di configurazione predefinito per l'host virtuale predefinito. Ciò indica che il timeout di I/O è configurata correttamente su 120 secondi sul router. - Se visualizzi ancora il valore precedente per la proprietà
proxy_read_timeout
, verificare di aver seguito tutti i passaggi descritti in Configurazione corretta del timeout di I/O sui router. Se disponi hai saltato un passaggio, ripeti tutti i passaggi correttamente. - Se non riesci ancora a modificare il timeout di I/O, contatta l'assistenza Apigee Edge.
Passaggi successivi
Scopri di più su come configurare il timeout di I/O nel processore di messaggi