Konfigurowanie limitu czasu wejścia/wyjścia w routerach

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Z tego dokumentu dowiesz się, jak skonfigurować limit czasu wejścia-wyjścia na routerach Apigee Edge.

Limit czasu wejścia-wyjścia na routerze to czas, przez który router czeka na otrzymanie odpowiedzi z procesora komunikatów po nawiązaniu połączenia i wysłaniu żądania do procesora komunikatów. Domyślna wartość limitu czasu wejścia-wyjścia na routerze to 57 sekund.

Limit czasu wejścia-wyjścia na routerach można zwiększyć lub zmniejszyć w zależności od potrzeb w stosunku do wartości domyślnej wynoszącej 57 sekund. Można go skonfigurować na te sposoby:

  • W hoście wirtualnym
  • Na routerze

Te właściwości kontrolują limit czasu wejścia-wyjścia na routerach:

Nazwa właściwości Lokalizacja Opis
proxy_read_timeout Host wirtualny

Określa maksymalny czas, przez który router czeka na odpowiedź z procesora komunikatów po nawiązaniu połączenia i wysłaniu do niego żądania.

Jeśli w tym czasie nie nadejdzie odpowiedź z procesora komunikatów, to router przekroczy limit czasu.

Domyślnie ta właściwość przyjmuje wartość ustawioną dla właściwości conf_load_balancing_load.balancing.driver.proxy.read.timeout na routerze. Wartość domyślna to 57 sekund.

Jeśli ta właściwość zostanie zmodyfikowana i otrzyma nową wartość limitu czasu dla konkretnego hosta wirtualnego, wpłynie to tylko na te serwery proxy interfejsu API, które korzystają z tego hosta wirtualnego.

conf_load_balancing_load.balancing.driver.proxy.read.timeout Router

Określa maksymalny czas, przez który router czeka na odpowiedź z procesora komunikatów po nawiązaniu połączenia i wysłaniu do niego żądania.

Jeśli w tym czasie nie nadejdzie odpowiedź z procesora komunikatów, to router przekroczy limit czasu.

Ta właściwość jest używana w przypadku wszystkich hostów wirtualnych na tym routerze.

Domyślna wartość tej właściwości to 57 sekund.

Możesz zmodyfikować tę właściwość w sposób opisany w Konfigurowanie limitu czasu wejścia-wyjścia na routerach poniżej lub zastąpić tę wartość, ustawiając właściwość proxy_read_timeout na poziomie hosta wirtualnego.

Możesz ustawić interwał czasu dla tej właściwości w inny sposób niż w sekundach, używając tej notacji:

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

Określa łączny czas, przez który router czeka na odpowiedź ze wszystkich procesorów wiadomości po nawiązaniu połączenia i wysłaniu żądania do każdego z nich.

Ma to zastosowanie, gdy instalacja Edge ma wiele procesorów wiadomości, a w przypadku wystąpienia błędów włączone są ponowne próby. Może mieć jedną z tych wartości:

  • Aktualna wartość conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • Wartość domyślna 57 sekund

Podobnie jak w przypadku właściwości conf_load_balancing_load.balancing.driver.proxy.read.timeout możesz określić interwały czasu inne niż domyślne (sekundy).

Zanim zaczniesz

Zanim wykonasz czynności opisane w tym dokumencie, zapoznaj się z tymi tematami:

Konfigurowanie limitu czasu wejścia-wyjścia w hoście wirtualnym

W tej sekcji dowiesz się, jak skonfigurować limit czasu wejścia-wyjścia w hoście wirtualnym powiązanym z organizacją i środowiskiem. Limit czasu wejścia-wyjścia można skonfigurować w hoście wirtualnym za pomocą właściwości proxy_read_timeout, która reprezentuje wartość limitu czasu wejścia-wyjścia w sekundach.

Host wirtualny możesz skonfigurować na jeden z tych sposobów:

  • Interfejs Edge
  • Interfejs Edge API

Interfejs Edge

Aby skonfigurować hosta wirtualnego za pomocą interfejsu Edge:

  1. Zaloguj się w interfejsie Edge.
  2. Kliknij Administracja > Hosty wirtualne.
  3. Wybierz konkretne środowisko , w którym chcesz wprowadzić tę zmianę.
  4. Wybierz konkretnego hosta wirtualnego, dla którego chcesz skonfigurować nową wartość limitu czasu wejścia-wyjścia.
  5. W sekcji Właściwości zaktualizuj wartość Limit czasu odczytu serwera proxy w sekundach.

    Jeśli na przykład chcesz zmienić limit czasu na 120 sekund, wpisz 120, jak pokazano na ilustracji poniżej:

    Wartość limitu czasu odczytu serwera proxy wynosząca 120

  6. Zapisz zmianę.

Interfejs Edge API

Aby skonfigurować hosta wirtualnego za pomocą interfejsu Edge API:

  1. Pobierz bieżącą konfigurację hosta wirtualnego za pomocą interfejsu Get virtual host API, jak pokazano poniżej:

    Użytkownik Public Cloud

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

    Użytkownik Private Cloud

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

    Gdzie:

    {organization-name} to nazwa organizacji.

    {environment-name} to nazwa środowiska.

    {virtualhost-name} to nazwa hosta wirtualnego.

    Przykładowa konfiguracja hosta wirtualnego

        {
          "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. Dodaj właściwość proxy_read_timeout do istniejącego ładunku JSON konfiguracji hosta wirtualnego w sekcji properties z wartością w sekundach.

    Aby na przykład zmienić limit czasu wejścia-wyjścia na 120 sekund, dodaj blok kodu properties jak poniżej:

    Przykładowa zaktualizowana konfiguracja hosta wirtualnego

    {
      "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. Zapisz zaktualizowaną konfigurację hosta wirtualnego w pliku. Na przykład, virtualhost-payload.json.
  4. Zaktualizuj konfigurację virtualhost za pomocą interfejsu Update a virtual host API w ten sposób:

    Użytkownik 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>
                

    Użytkownik 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>
                

    Gdzie:

    {organization-name} to nazwa organizacji.

    {environment-name} to nazwa środowiska.

    {virtualhost-name} to nazwa hosta wirtualnego.

Sprawdzanie limitu czasu wejścia-wyjścia w hostach wirtualnych

W tej sekcji dowiesz się, jak sprawdzić, czy limit czasu wejścia-wyjścia został prawidłowo zmodyfikowany w hoście wirtualnym za pomocą interfejsu Edge API.

  1. Uruchom interfejs Get virtual host API, aby pobrać konfigurację virtualhost, jak pokazano poniżej:

    Użytkownik Public Cloud

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

    Użytkownik Private Cloud

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

    Gdzie:

    {organization-name} to nazwa organizacji.

    {environment-name} to nazwa środowiska.

    {virtualhost-name} to nazwa hosta wirtualnego.

  2. Sprawdź, czy właściwość proxy_read_timeout została ustawiona na nową wartość.

    Przykładowa zaktualizowana konfiguracja hosta wirtualnego

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

    W powyższym przykładzie zwróć uwagę, że właściwość proxy_read_timeout została ustawiona na nową wartość 120 sekund.

  3. Jeśli nadal widzisz starą wartość proxy_read_timeout,sprawdź, czy prawidłowo wykonano wszystkie czynności opisane w sekcji Konfigurowanie limitu czasu wejścia-wyjścia w hoście wirtualnym. Jeśli pominiesz jakiś krok, powtórz wszystkie czynności.
  4. Jeśli nadal nie możesz zmodyfikować limitu czasu wejścia-wyjścia, skontaktuj się z zespołem pomocy Apigee Edge.

Konfigurowanie limitu czasu wejścia-wyjścia na routerach

W tej sekcji dowiesz się, jak skonfigurować limit czasu wejścia-wyjścia na routerach. Limit czasu wejścia-wyjścia można skonfigurować za pomocą właściwości routera conf_load_balancing_load.balancing.driver.proxy.read.timeout, która reprezentuje wartość limitu czasu wejścia-wyjścia w sekundach.

Aby skonfigurować limit czasu wejścia-wyjścia na routerach:

  1. Na maszynie routera otwórz ten plik w edytorze. Jeśli plik nie istnieje, utwórz go.
    /opt/apigee/customer/application/router.properties

    Aby na przykład otworzyć plik za pomocą vi, wpisz to polecenie:

    vi /opt/apigee/customer/application/router.properties
  2. Dodaj wiersz w tym formacie do pliku properties, zastępując wartość dla time_in_seconds:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds

    Aby na przykład zmienić limit czasu wejścia-wyjścia na routerze na 120 sekund, dodaj ten wiersz:

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

    Możesz też zmodyfikować limit czasu wejścia-wyjścia w minutach. Aby na przykład zmienić limit czasu na 2 minuty, dodaj ten wiersz:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
  4. Zapisz zmiany.
  5. Upewnij się, że właścicielem tego pliku właściwości jest użytkownik apigee, jak pokazano poniżej:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. Uruchom ponownie router, jak pokazano poniżej:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. Jeśli masz więcej niż 1 router, powtórz powyższe czynności na wszystkich routerach.

Sprawdzanie limitu czasu wejścia-wyjścia na routerach

W tej sekcji dowiesz się, jak sprawdzić, czy limit czasu wejścia-wyjścia został prawidłowo zmodyfikowany na routerach.

Mimo że do ustawienia limitu czasu wejścia-wyjścia na routerze używasz tokena conf_load_balancing_load.balancing.driver.proxy.read.timeout, musisz sprawdzić, czy rzeczywista właściwość proxy_read_timeout została ustawiona na nową wartość.

  1. Wyszukaj właściwość proxy_read_timeout w katalogu /opt/nginx/conf.d i sprawdź, czy została ustawiona na nową wartość:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. Jeśli nowa wartość limitu czasu wejścia-wyjścia zostanie prawidłowo ustawiona na routerze, powyższe polecenie wyświetli nową wartość we wszystkich plikach konfiguracji hosta wirtualnego.

    Poniżej znajduje się przykładowy wynik polecenia grep powyżej, gdy limit czasu wejścia-wyjścia wynosi 120 sekund:

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

    W powyższym przykładzie zwróć uwagę, że właściwość proxy_read_timeout została ustawiona na nową wartość 120 w pliku 0-default.conf, który jest plikiem konfiguracji domyślnego hosta wirtualnego. Oznacza to, że limit czasu wejścia-wyjścia został prawidłowo skonfigurowany na routerze na 120 sekund.

  3. Jeśli nadal widzisz starą wartość właściwości proxy_read_timeout, to sprawdź, czy prawidłowo wykonano wszystkie czynności opisane w Konfigurowanie limitu czasu wejścia-wyjścia na routerach. Jeśli pominiesz jakiś krok, powtórz wszystkie czynności.
  4. Jeśli nadal nie możesz zmodyfikować limitu czasu wejścia-wyjścia, skontaktuj się z zespołem pomocy Apigee Edge.

Co dalej?

Więcej informacji o konfigurowaniu limitu czasu wejścia-wyjścia w procesorze komunikatów