ルーターの I/O タイムアウトを構成する

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

<ph type="x-smartling-placeholder">

このドキュメントでは、Apigee Edge のルーターで I/O タイムアウトを構成する方法について説明します。

Router の I/O タイムアウトは、Router がパケットを受信するまで待機する時間 接続の確立とリクエストの送信後に、Message Processor からのレスポンスが返されます。 Message Processor に送信されます。Router の I/O タイムアウトのデフォルト値は 57 秒です。

Router の I/O タイムアウトは、デフォルト値の 57 秒から増減できます 作成できます。次のように構成できます。

  • 仮想ホスト内
  • ルーター

次のプロパティは、ルーターの I/O タイムアウトを制御します。

プロパティ名 場所 説明
proxy_read_timeout 仮想ホスト

Router がネットワークからレスポンスを受信するまで待機する最大時間を指定します。 Message Processor で接続が確立され、リクエストが Message Processor です。

このタイムアウト期間内に Message Processor からレスポンスがなかった場合、 ルーターがタイムアウトする。

デフォルトでは、このプロパティは Router の conf_load_balancing_load.balancing.driver.proxy.read.timeout プロパティ。「 デフォルト値は 57 秒です。

このプロパティを特定の仮想ホストの新しいタイムアウト値で変更すると、次のようになります。 その特定の仮想ホストを使用する API プロキシのみが影響を受けます。

conf_load_balancing_load.balancing.driver.proxy.read.timeout ルーター

Router がネットワークからレスポンスを受信するまで待機する最大時間を指定します。 Message Processor で接続が確立され、リクエストが Message Processor です。

このタイムアウト期間内に Message Processor からレスポンスがなかった場合、 ルーターがタイムアウトする。

このプロパティは、この Router 上のすべての仮想ホストに使用されます。

このプロパティのデフォルト値は 57 秒です。

このプロパティは、 後述のルーターの I/O タイムアウトの構成をご覧ください。または、 この値を使用するには、仮想ホストレベルで proxy_read_timeout プロパティを設定します。

このプロパティの間隔は、 次の表記:

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 がすべての Message からレスポンスを受信するまで待機する合計時間。 プロセッサ: 接続を確立し、各メッセージにリクエストを送信した後 データ処理者

これは、Edge インストール環境に複数の Message Processor があり、 エラー発生時に再試行が有効になります。次のいずれかの値になります。

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout の現在の値
  • デフォルト値の 57 秒

conf_load_balancing_load.balancing.driver.proxy.read.timeout と同様 プロパティを使用すると、デフォルト(秒)以外の時間間隔を指定できます。

始める前に

このドキュメントの手順を使用する前に、次のトピックを理解しておいてください。

で確認できます。 <ph type="x-smartling-placeholder">

仮想ホストの I/O タイムアウトの構成

このセクションでは、関連付けられた仮想ホストで I/O タイムアウトを構成する方法について説明します。 組織と環境の両方が含まれます。I/O タイムアウトは、 プロパティ proxy_read_timeout。I/O タイムアウト値を秒単位で表します。

<ph type="x-smartling-placeholder">で確認できます。 <ph type="x-smartling-placeholder">

仮想ホストは、次のいずれかの方法で構成できます。

  • Edge UI
  • Edge API

Edge UI

<ph type="x-smartling-placeholder">

Edge UI を使用して仮想ホストを構成する手順は次のとおりです。

  1. Edge UI にログインします。
  2. [管理] >仮想ホスト
  3. この変更を行う特定の環境を選択します。
  4. 新しいサブネットを構成する特定の仮想ホストを選択します。 I/O タイムアウト値。
  5. [Properties] で、[Proxy Read Timeout] の値を秒単位で更新します。

    たとえば、タイムアウトを 120 秒に変更する場合は、 次の図をご覧ください。

    プロキシ読み取りタイムアウト値 120

  6. 変更を保存します。

Edge API

Edge API を使用して仮想ホストを構成する手順は次のとおりです。

  1. 次を使用して現在の仮想ホストの構成を取得します。 <ph type="x-smartling-placeholder"></ph> 次に示すように、仮想ホスト API を取得します。

    Public Cloud ユーザー

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

    Private Cloud ユーザー

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

    ここで

    {organization-name} は組織の名前です。

    {environment-name} は環境の名前です。

    {virtualhost-name} は、仮想ホストの名前です。

    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. proxy_read_timeout プロパティを既存の仮想ホストの構成に追加する 秒単位の値を持つ properties の下の JSON ペイロード。

    たとえば、I/O タイムアウトを 120 秒に変更するには、properties コードブロックは次のようになります。

    更新された仮想ホストの構成例

    {
      "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. 更新した仮想ホストの構成をファイルに保存します。たとえば、virtualhost-payload.json です。
  4. 次のコマンドを使用して、virtualhost 構成を更新します。 <ph type="x-smartling-placeholder"></ph> 次のように仮想ホスト API を更新します。

    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>
                

    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>
                

    ここで

    {organization-name} は組織の名前です。

    {environment-name} は環境の名前です。

    {virtualhost-name} は、仮想ホストの名前です。

仮想ホストの I/O タイムアウトの確認

このセクションでは、Google Cloud コンソールで I/O タイムアウトが正常に変更されたことを確認する方法について説明します。 使用して仮想的にホストします。

  1. 次のコマンドを実行します。 <ph type="x-smartling-placeholder"></ph> 次に示すように、仮想ホスト API を取得してvirtualhost構成を取得します。

    Public Cloud ユーザー

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

    Private Cloud ユーザー

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

    ここで

    {organization-name} は組織の名前です。

    {environment-name} は環境の名前です。

    {virtualhost-name} は、仮想ホストの名前です。

  2. プロパティ proxy_read_timeout が新しい値に設定されていることを確認します。

    更新された仮想ホストの構成例

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

    上記の例では、proxy_read_timeout が「 新しい値である 120 秒。

  3. proxy_read_timeout, に古い値が引き続き表示される場合は、次のことを確認してください。 仮想ホストの I/O タイムアウトの構成に記載されているすべての手順に正しく従っていること。 途中を抜けた場合は、すべての手順を正しく繰り返します。
  4. それでも I/O タイムアウトを変更できない場合は、Apigee Edge サポートにお問い合わせください。

ルーターの I/O タイムアウトの構成

このセクションでは、ルーターで I/O タイムアウトを構成する方法について説明します。I/O タイムアウトは Router プロパティで構成 conf_load_balancing_load.balancing.driver.proxy.read.timeout は、 I/O タイムアウト値(秒単位)。

<ph type="x-smartling-placeholder">で確認できます。 <ph type="x-smartling-placeholder">

Router で I/O タイムアウトを構成するには、次の操作を行います。

  1. ルーターマシンのエディタで、次のファイルを開きます。まだ存在しない場合は作成します。
    /opt/apigee/customer/application/router.properties
    

    たとえば、 vi の場合は、次のコマンドを入力します。

    vi /opt/apigee/customer/application/router.properties
    
  2. properties ファイルに次の形式の行を追加します。 time_in_seconds の値:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    たとえば、Router の I/O タイムアウトを 120 秒に変更するには、次の行を追加します。

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

    I/O タイムアウトを分単位で変更することもできます。たとえば、タイムアウトを 2 分経過したら、次の行を追加します。

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
    <ph type="x-smartling-placeholder">
  4. 変更を保存します。
  5. 以下に示すように、このプロパティ ファイルの所有者が apigee ユーザーであることを確認します。
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. 次のように Router を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. Router が複数ある場合は、すべての Router で上記の手順を繰り返します。

Router での I/O タイムアウトの確認

このセクションでは、Google Cloud コンソールで I/O タイムアウトが正常に変更されたことを確認する方法について説明します。 構成されます

トークンや I/O タイムアウトを設定する conf_load_balancing_load.balancing.driver.proxy.read.timeout Router で、実際のプロパティ proxy_read_timeout が次の値になっているかどうかを検証する必要があります。 新しい値で設定されます。

  1. 次の場所でプロパティ proxy_read_timeout を検索します。 /opt/nginx/conf.d ディレクトリに移動して、 新しい値を次のように変更します。
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. ルーターで新しい I/O タイムアウト値が正常に設定されている場合、上記のコマンドは すべての仮想ホスト構成ファイルの新しい値を示します。

    以下は、上記の grep コマンドで実行された I/O タイムアウトは 120 秒です。

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

    上記の出力例では、プロパティ proxy_read_timeout0-default.conf で新しい値 120 に設定されています。これは、 構成ファイルを作成します。これは、I/O タイムアウトが失敗したことを はルーターで 120 秒に正常に設定されます。

    <ph type="x-smartling-placeholder">
  3. プロパティ proxy_read_timeout に古い値が引き続き表示される場合: 記載されているすべてのステップが ルーターの I/O タイムアウトの構成を正しく構成する。既存の 手順をすべて間違えた場合は、すべての手順を正しく繰り返します。
  4. それでも I/O タイムアウトを変更できない場合は、Apigee Edge サポートにお問い合わせください。

次のステップ

Message Processor の I/O タイムアウトの構成について学習する