Stai visualizzando la documentazione di Apigee Edge.
Consulta la
documentazione di Apigee X. info
Questo documento spiega come configurare il timeout I/O sui router di Apigee Edge.
Il timeout I/O sul router rappresenta il tempo durante il quale il router attende di ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al processore di messaggi. Il valore predefinito del timeout I/O sul router è di 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 I/O sui router:
| Nome proprietà | Località | Descrizione |
|---|---|---|
proxy_read_timeout
|
Host virtuale |
Specifica il tempo massimo durante il quale il router attende di ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al processore di messaggi. Se non viene ricevuta alcuna risposta dal processore di messaggi entro questo periodo di timeout, il router va in timeout. Per impostazione predefinita, questa proprietà assume il valore impostato per la
Se questa proprietà viene modificata con un nuovo valore di timeout per un host virtuale specifico, allora vengono 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 di ricevere una risposta dal processore di messaggi, dopo aver stabilito la connessione e inviato la richiesta al processore di messaggi. Se non viene ricevuta alcuna risposta dal processore di messaggi entro questo periodo di timeout, il router va 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à in un'unità diversa 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 durante il quale il router attende di ricevere una risposta da tutti i Message Processor, dopo aver stabilito la connessione e inviato la richiesta a ogni Message Processor. Questa impostazione è applicabile quando l'installazione di Edge ha più Message Processor e il tentativo è abilitato in caso di errori. Ha uno dei seguenti valori:
Come per la proprietà |
Prima di iniziare
Prima di seguire i passaggi descritti in questo documento, assicurati di comprendere i seguenti argomenti:
- Se non hai familiarità con le proprietà degli host virtuali, leggi Riferimento alle proprietà degli host virtuali.
- 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 delle raccomandazioni sul timeout I/O.
Configurare il timeout I/O nell'host virtuale
Questa sezione spiega come configurare il timeout 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 del timeout 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 l'UI Edge:
- Accedi all'UI Edge.
- Vai ad Amministratore > Host virtuali.
- Seleziona un ambiente specifico in cui vuoi apportare questa modifica.
- Seleziona l'host virtuale specifico per il quale vuoi configurare il nuovo I/O timeout value.
- In Proprietà, aggiorna il valore di Timeout di lettura del proxy in secondi.
Ad esempio, se vuoi modificare il timeout a 120 secondi, digita 120 come mostrato nella figura seguente:
- Salva la modifica.
API Edge
Per configurare l'host virtuale utilizzando l'API Edge:
- Ottieni la configurazione dell'host virtuale attuale utilizzando l'
API Get virtual host come mostrato di seguito:
Utente di Public Cloud
curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Utente di 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 dell'host virtuale 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_timeoutal payload JSON della configurazione dell'host virtuale esistente inpropertiescon il valore in secondi.Ad esempio, per modificare il timeout I/O a 120 secondi, aggiungi il blocco di codice
propertiescome mostrato di seguito:Configurazione dell'host virtuale aggiornata di esempio
{ "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 di
virtualhostcon la modifica utilizzando l' API Update a virtual host come segue:Utente di Public Cloud
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 di 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
Verificare il 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
virtualhostcome mostrato di seguito:Utente di Public Cloud
curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>Utente di 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_timeoutsia stata impostata sul nuovo valore.Configurazione dell'host virtuale aggiornata di esempio
{ "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 continui a visualizzare il vecchio valore 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 un passaggio, ripeti correttamente tutti i passaggi. - Se non riesci ancora a modificare il timeout I/O, contatta l'assistenza di Apigee Edge.
Configurare il 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à del router
conf_load_balancing_load.balancing.driver.proxy.read.timeout, che rappresenta
il valore del timeout I/O in secondi.
Per configurare il timeout I/O sui router:
- Sulla macchina del 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 di proprietà sia di proprietà dell'utente
apigeecome 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 hai 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 modificare il timeout I/O sul router a 120 secondi, aggiungi la seguente riga:
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 a due minuti, aggiungi la seguente riga:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
Verificare il 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_timeoutnella/opt/nginx/conf.ddirectory e verifica 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 precedente
mostra il nuovo valore in tutti i file di configurazione dell'host virtuale.
Di seguito è riportato il risultato di esempio del comando
grepprecedente 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 precedente, nota che la proprietà
proxy_read_timeoutè stata impostata con il nuovo valore 120 in0-default.conf, che è il file di configurazione dell'host virtuale predefinito. Ciò indica che il timeout I/O è stato configurato correttamente a 120 secondi sul router. - Se continui a visualizzare il vecchio valore 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 un passaggio, ripeti correttamente tutti i passaggi. - Se non riesci ancora a modificare il timeout I/O, contatta l'assistenza di Apigee Edge.
Passaggi successivi
Scopri di più sulla configurazione del timeout I/O nel processore di messaggi