Configurazione del timeout I/O sui router

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à conf_load_balancing_load.balancing.driver.proxy.read.timeout sul router. La 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 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à proxy_read_timeout a livello di host virtuale.

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:

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

Come per 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 aver compreso i seguenti argomenti:

di Gemini Advanced.

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.

di Gemini Advanced.

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:

  1. Accedi alla UI di Edge.
  2. Vai ad Amministrazione > Host virtuali.
  3. Seleziona un Ambiente specifico in cui vuoi apportare questa modifica.
  4. Seleziona l'host virtuale specifico per il quale vuoi configurare il nuovo Valore di timeout I/O.
  5. 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:

    Valore del 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 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
        }
    
  2. Aggiungi la proprietà proxy_read_timeout alla configurazione dell'host virtuale esistente Payload JSON in properties 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
    }
    
  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 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.

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

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

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

di Gemini Advanced.

Per configurare il timeout I/O sui router, segui questi passaggi:

  1. 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
    
  2. Aggiungi al file properties una riga nel seguente formato, sostituendo un valore di 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 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
    
  4. Salva le modifiche.
  5. Verifica che questo file delle proprietà appartenga all'utente apigee, come illustrato 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 possiedi più di un router, ripeti i passaggi precedenti su tutti i router.

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.

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

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