Configurazione del timeout I/O sui router

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à conf_load_balancing_load.balancing.driver.proxy.read.timeout sul router. Il valore predefinito è 57 secondi.

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à proxy_read_timeout a livello di host virtuale.

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:

  • Il valore attuale di conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • Il valore predefinito di 57 secondi

Come per la proprietà conf_load_balancing_load.balancing.driver.proxy.read.timeout, puoi specificare intervalli di tempo diversi da quelli predefiniti (secondi).

Prima di iniziare

Prima di seguire la procedura descritta in questo documento, assicurati di comprendere i seguenti argomenti:

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:

  1. Accedi all'UI Edge.
  2. Vai ad Admin > Virtual Hosts (Amministrazione > Host virtuali).
  3. Seleziona l'ambiente in cui vuoi apportare questa modifica.
  4. Seleziona l'host virtuale specifico per cui vuoi configurare il nuovo valore di timeout I/O.
  5. 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:

    Valore di timeout di lettura del proxy pari a 120

  6. Salva la modifica.

API Edge

Per configurare l'host virtuale utilizzando l'API Edge, segui questi passaggi:

  1. 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
        }
    
  2. Aggiungi la proprietà proxy_read_timeout al payload JSON di configurazione dell'host virtuale esistente in properties 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
    }
    
  3. Salva la configurazione dell'host virtuale aggiornata in un file. Ad esempio, virtualhost-payload.json.
  4. 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.

  1. 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

  2. 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.

  3. 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.
  4. 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:

  1. 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
    
  2. Aggiungi una riga nel seguente formato al file properties, sostituendo un valore per time_in_seconds:
  3. 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
    
  4. Salva le modifiche.
  5. 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
    
  6. Riavvia il router come mostrato di seguito:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Se disponi di più router, ripeti i passaggi precedenti su tutti i router.

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.

  1. 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
    
  2. 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 in 0-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.

  3. 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.
  4. 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