Stai visualizzando la documentazione di Apigee Edge.
Vai alla
documentazione di Apigee X. informazioni
Questo documento spiega come configurare il timeout I/O sui router Apigee Edge.
Il timeout I/O sul router rappresenta il tempo durante il quale il router attende per ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e aver inviato la richiesta al processore di messaggi. Il valore predefinito del timeout I/O sul router è 57 secondi.
Il timeout I/O per i router può essere aumentato o diminuito dal 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 I/O sui router:
Nome proprietà | Località | Descrizione |
---|---|---|
proxy_read_timeout
|
Host virtuale |
Specifica il tempo massimo durante il quale il router attende per ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e aver inviato la richiesta al processore di messaggi. Se il processore di messaggi non risponde entro questo periodo di timeout, il router andrà in timeout. Per impostazione predefinita, questa proprietà accetta il valore impostato per la
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 quell'host virtuale specifico. |
conf_load_balancing_load.balancing.driver.proxy.read.timeout
|
Router |
Specifica il tempo massimo durante il quale il router attende per ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e aver inviato la richiesta al processore di messaggi. Se il processore di messaggi non risponde entro questo periodo di timeout, il router andrà in timeout. 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
Configurare 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 la seguente notazione: 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 che il router attende per ricevere una risposta da tutti i processori di messaggi dopo aver stabilito la connessione e aver inviato la richiesta a ciascun processore di messaggi. Questo è applicabile quando l'installazione Edge ha più processori di messaggi e l'opzione Riprova è abilitata al verificarsi di errori. Ha il valore di uno dei seguenti elementi:
Come per la proprietà |
Prima di iniziare
Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:
- Se non hai dimestichezza con le proprietà degli host virtuali, leggi Riferimento proprietà host virtuale.
- Se non hai dimestichezza con la configurazione delle proprietà per Edge su Cloud privato, leggi Come configurare Edge.
- Assicurati di seguire i suggerimenti sulle best practice per la configurazione del timeout di I/O.
Configurazione del timeout I/O nell'host virtuale
Questa sezione spiega come configurare il timeout di I/O nell'host virtuale associato a un'organizzazione e a un ambiente. Il timeout I/O può essere configurato nell'host virtuale tramite la
proprietà proxy_read_timeout
, che rappresenta il valore di timeout I/O in secondi.
Puoi configurare l'host virtuale utilizzando uno dei seguenti metodi:
- UI perimetrale
- API Edge
UI perimetrale
Per configurare l'host virtuale utilizzando la UI Edge, segui questi passaggi:
- Accedi all'UI Edge.
- Vai ad Admin > Virtual Hosts (Amministrazione > Host virtuali).
- Seleziona l'ambiente in cui vuoi apportare questa modifica.
- Seleziona l'host virtuale specifico per cui vuoi configurare il nuovo valore di timeout I/O.
- In Proprietà, aggiorna il valore Timeout lettura proxy in secondi.
Ad esempio, se vuoi modificare il timeout in 120 secondi, digita 120 come mostrato nella figura seguente:
- Salva la modifica.
API Edge
Per configurare l'host virtuale utilizzando l'API Edge, segui questi passaggi:
- Ottieni la configurazione dell'host virtuale attuale utilizzando l'API
Ottieni host virtuale, come mostrato di seguito:
Utente del 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
Configurazione virtualhost di esempio
{ "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
al payload JSON di configurazione dell'host virtuale esistente inproperties
con il valore in secondi.Ad esempio, per impostare il timeout I/O su 120 secondi, aggiungi il blocco di codice
properties
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 l'API Aggiorna un host virtuale come segue:Utente del 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 I/O sugli host virtuali
Questa sezione spiega come verificare che il timeout I/O sia stato modificato correttamente sull'host virtuale utilizzando l'API Edge.
- Esegui l'API
Get virtual host per ottenere la configurazione
virtualhost
come mostrato di seguito:Utente del 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 per la proprietà
proxy_read_timeout
sia stato impostato il 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, tieni presente che
proxy_read_timeout
è stato impostato con il nuovo valore di 120 secondi. - Se vedi ancora il valore precedente per
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 correttamente tutti i passaggi. - Se ancora non riesci a modificare il timeout I/O, contatta l'Assistenza Apigee Edge.
Configurazione del timeout I/O sui router
Questa sezione spiega come configurare il timeout I/O sui router. Il timeout 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 seguente file in un editor. Se non esiste già, crealo.
/opt/apigee/customer/application/router.properties
Ad esempio, per aprire il file con
vi
, inserisci il seguente comando:vi /opt/apigee/customer/application/router.properties
- Aggiungi una riga nel seguente formato al file
properties
, sostituendo un valore pertime_in_seconds
: - Salva le modifiche.
- Assicurati che questo file delle proprietà sia di proprietà dell'utente
apigee
, come mostrato 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 disponi di più 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 di I/O in minuti. Ad esempio, per modificare il timeout in due minuti, aggiungi la seguente riga:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Verifica del timeout I/O sui router
Questa sezione spiega come verificare che il timeout I/O sia stato modificato correttamente sui 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
è stata impostata con il nuovo valore.
- Cerca la proprietà
proxy_read_timeout
nella directory/opt/nginx/conf.d
e controlla se è stata impostata con il 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 riportato sopra mostra il nuovo valore in tutti i file di configurazione dell'host virtuale.
Di seguito è riportato l'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 riportato sopra, puoi notare che la proprietà
proxy_read_timeout
è stata impostata con il nuovo valore 120 in0-default.conf
, che è il file di configurazione per l'host virtuale predefinito. Questo indica che il timeout I/O è stato configurato correttamente su 120 secondi sul router. - Se vedi ancora il valore precedente per la proprietà
proxy_read_timeout
, verifica di aver seguito correttamente tutti i passaggi descritti in Configurare il timeout I/O sui router. Se hai saltato qualche passaggio, ripeti correttamente tutti i passaggi. - Se ancora non riesci a modificare il timeout I/O, contatta l'Assistenza Apigee Edge.
Passaggi successivi
Scopri di più sulla configurazione del timeout I/O nel processore di messaggi