Configurer le délai d'expiration des E/S sur les routeurs

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Ce document explique comment configurer le délai avant expiration des E/S sur les routeurs d'Apigee Edge.

Le délai avant expiration des E/S sur le routeur représente le temps que le routeur attend de recevoir une réponse du processeur de messages, après avoir établi la connexion et envoyé la requête au processeur de messages. La valeur par défaut du délai avant expiration des E/S sur le routeur est de 57 secondes.

Le délai avant expiration des E/S pour les routeurs peut être augmenté ou réduit à partir de la valeur par défaut de 57 secondes en fonction de vos besoins. Il peut être configuré comme suit:

  • Sur un hôte virtuel
  • Sur le routeur

Les propriétés suivantes contrôlent le délai avant expiration des E/S sur les routeurs:

Nom de propriété Emplacement Description
proxy_read_timeout Hôte virtuel

Spécifie le délai maximal pendant lequel le routeur attend de recevoir une réponse du processeur de messages, après avoir établi la connexion et envoyé la requête au processeur de messages.

Si le processeur de messages ne répond pas dans ce délai, le routeur expire.

Par défaut, cette propriété utilise la valeur définie pour la propriété conf_load_balancing_load.balancing.driver.proxy.read.timeout sur le routeur. La valeur par défaut est de 57 secondes.

Si cette propriété est modifiée avec une nouvelle valeur de délai d'expiration pour un hôte virtuel spécifique, seuls les proxys d'API utilisant cet hôte virtuel spécifique sont affectés.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Routeur

Spécifie le délai maximal pendant lequel le routeur attend de recevoir une réponse du processeur de messages, après avoir établi la connexion et envoyé la requête au processeur de messages.

Si le processeur de messages ne répond pas dans ce délai, le routeur expire.

Cette propriété est utilisée pour tous les hôtes virtuels sur ce routeur.

La valeur par défaut de cette propriété est de 57 secondes.

Vous pouvez modifier cette propriété comme expliqué dans la section Configurer le délai d'expiration des E/S sur les routeurs ci-dessous, ou remplacer cette valeur en définissant la propriété proxy_read_timeout au niveau de l'hôte virtuel.

Vous pouvez définir l'intervalle de temps pour cette propriété sur une valeur autre que des secondes à l'aide de la notation suivante:

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 Routeur

Spécifie le temps total que le routeur attend pour recevoir une réponse de tous les processeurs de messages, après avoir établi la connexion et envoyé la requête à chaque processeur de messages.

Cela s'applique lorsque votre installation Edge comporte plusieurs processeurs de messages et que la nouvelle tentative est activée en cas d'erreur. Il peut prendre l'une des valeurs suivantes:

  • La valeur actuelle de conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • La valeur par défaut de 57 secondes

Comme pour la propriété conf_load_balancing_load.balancing.driver.proxy.read.timeout, vous pouvez spécifier des intervalles de temps autres que la valeur par défaut (secondes).

Avant de commencer

Avant de suivre la procédure décrite dans ce document, assurez-vous de bien comprendre les sujets suivants:

Configuration du délai avant expiration des E/S sur un hôte virtuel

Cette section explique comment configurer le délai avant expiration des E/S dans l'hôte virtuel associé à une organisation et à un environnement. Le délai avant expiration des E/S peut être configuré dans l'hôte virtuel via la propriété proxy_read_timeout, qui représente la valeur du délai avant expiration des E/S en secondes.

Vous pouvez configurer l'hôte virtuel en utilisant l'une des méthodes suivantes:

  • Interface utilisateur périphérique
  • API Edge

Interface utilisateur périphérique

Pour configurer l'hôte virtuel à l'aide de l'interface utilisateur Edge, procédez comme suit:

  1. Connectez-vous à l'interface utilisateur Edge.
  2. Accédez à Admin > Virtual Hosts (Admin > Hôtes virtuels).
  3. Sélectionnez l'environnement spécifique dans lequel vous souhaitez effectuer cette modification.
  4. Sélectionnez l'hôte virtuel spécifique pour lequel vous souhaitez configurer la nouvelle valeur de délai avant expiration des E/S.
  5. Sous Propriétés, mettez à jour la valeur Délai de lecture du proxy (en secondes).

    Par exemple, si vous souhaitez définir le délai avant expiration à 120 secondes, saisissez 120, comme illustré dans la figure suivante:

    Délai d'expiration de la lecture du proxy : 120

  6. Enregistrez la modification.

API Edge

Pour configurer l'hôte virtuel à l'aide de l'API Edge, procédez comme suit:

  1. Obtenez la configuration actuelle de l'hôte virtuel à l'aide de l'API Get virtual host (Obtenir un hôte virtuel), comme indiqué ci-dessous:

    Utilisateur du cloud public

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Utilisateur Private Cloud

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    Où :

    {organization-name} est le nom de l'organisation.

    {environment-name} est le nom de l'environnement.

    {virtualhost-name} est le nom de l'hôte virtuel.

    Exemple de configuration d'hôte virtuel

        {
          "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. Ajoutez la propriété proxy_read_timeout à la charge utile JSON de la configuration d'hôte virtuel existante sous properties avec la valeur en secondes.

    Par exemple, pour définir le délai avant expiration des E/S sur 120 secondes, ajoutez le bloc de code properties comme indiqué ci-dessous:

    Exemple de configuration d'hôte virtuel mise à jour

    {
      "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. Enregistrez la configuration d'hôte virtuel mise à jour dans un fichier. Par exemple : virtualhost-payload.json
  4. Mettez à jour la configuration virtualhost avec la modification à l'aide de l'API Mettre à jour un hôte virtuel comme suit:

    Utilisateur du cloud public

    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>
                

    Utilisateur 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>
                

    Où :

    {organization-name} est le nom de l'organisation.

    {environment-name} est le nom de l'environnement.

    {virtualhost-name} est le nom de l'hôte virtuel.

Vérifier le délai avant expiration des E/S sur des hôtes virtuels

Cette section explique comment vérifier que le délai avant expiration des E/S a bien été modifié sur l'hôte virtuel à l'aide de l'API Edge.

  1. Exécutez l'API Get virtual host (Obtenir l'hôte virtuel) pour obtenir la configuration virtualhost, comme indiqué ci-dessous:

    Utilisateur du cloud public

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Utilisateur Private Cloud

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    Où :

    {organization-name} est le nom de l'organisation.

    {environment-name} est le nom de l'environnement.

    {virtualhost-name} est le nom de l'hôte virtuel.

  2. Vérifiez que la propriété proxy_read_timeout a été définie sur la nouvelle valeur.

    Exemple de configuration d'hôte virtuel mise à jour

    {
      "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
    }
    

    Dans l'exemple ci-dessus, notez que proxy_read_timeout a été défini avec la nouvelle valeur de 120 secondes.

  3. Si l'ancienne valeur de proxy_read_timeout, s'affiche toujours, vérifiez que vous avez correctement suivi toutes les étapes décrites dans la section Configurer le délai avant expiration des E/S sur un hôte virtuel. Si vous avez manqué une étape, répétez-la correctement.
  4. Si vous ne parvenez toujours pas à modifier le délai avant expiration des E/S, contactez l'assistance Apigee Edge.

Configurer le délai avant expiration des E/S sur les routeurs

Cette section explique comment configurer le délai d'expiration des E/S sur les routeurs. Le délai avant expiration des E/S peut être configuré via la propriété de routeur conf_load_balancing_load.balancing.driver.proxy.read.timeout, qui représente la valeur du délai avant expiration des E/S en secondes.

Pour configurer le délai avant expiration des E/S sur les routeurs, procédez comme suit:

  1. Sur l'ordinateur routeur, ouvrez le fichier suivant dans un éditeur. S'il n'existe pas encore, créez-le.
    /opt/apigee/customer/application/router.properties
    

    Par exemple, pour ouvrir le fichier avec vi, saisissez la commande suivante:

    vi /opt/apigee/customer/application/router.properties
    
  2. Ajoutez une ligne au format suivant au fichier properties, en remplaçant time_in_seconds par une valeur:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    Par exemple, pour définir le délai avant expiration des E/S sur le routeur sur 120 secondes, ajoutez la ligne suivante:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    Vous pouvez également modifier le délai avant expiration des E/S en minutes. Par exemple, pour définir le délai avant expiration sur deux minutes, ajoutez la ligne suivante:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. Enregistrez les modifications.
  5. Assurez-vous que ce fichier de propriétés appartient à l'utilisateur apigee, comme indiqué ci-dessous :
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. Redémarrez le routeur comme indiqué ci-dessous :
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Si vous avez plusieurs routeurs, répétez les étapes ci-dessus sur chacun d'eux.

Vérifier le délai avant expiration des E/S sur les routeurs

Cette section explique comment vérifier que le délai avant expiration des E/S a bien été modifié sur les routeurs.

Même si vous utilisez le jeton conf_load_balancing_load.balancing.driver.proxy.read.timeout pour définir le délai avant expiration des E/S sur le routeur, vous devez vérifier si la propriété proxy_read_timeout a été définie avec la nouvelle valeur.

  1. Recherchez la propriété proxy_read_timeout dans le répertoire /opt/nginx/conf.d et vérifiez si elle a été définie avec la nouvelle valeur, comme suit :
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. Si la nouvelle valeur de délai avant expiration des E/S est correctement définie sur le routeur, la commande ci-dessus affiche la nouvelle valeur dans tous les fichiers de configuration de l'hôte virtuel.

    Voici l'exemple de résultat de la commande grep ci-dessus lorsque le délai avant expiration des E/S est de 120 secondes:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    Dans l'exemple de sortie ci-dessus, notez que la propriété proxy_read_timeout a été définie avec la nouvelle valeur 120 dans 0-default.conf, qui est le fichier de configuration de l'hôte virtuel par défaut. Cela indique que le délai avant expiration des E/S est correctement configuré sur 120 secondes sur le routeur.

  3. Si vous voyez toujours l'ancienne valeur pour la propriété proxy_read_timeout, vérifiez que vous avez correctement suivi toutes les étapes décrites dans la section Configurer le délai d'expiration des E/S sur les routeurs. Si vous avez manqué une étape, répétez toutes les étapes correctement.
  4. Si vous ne parvenez toujours pas à modifier le délai avant expiration des E/S, contactez l'assistance Apigee Edge.

Étapes suivantes

Découvrez comment configurer le délai d'expiration des E/S dans un processeur de messages.