राऊटर पर I/O टाइम आउट कॉन्फ़िगर करना

यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

इस दस्तावेज़ में, Apigee Edge के राऊटर पर I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है.

राऊटर पर I/O टाइमआउट, वह समय होता है जिसके लिए राऊटर, मैसेज प्रोसेसर से जवाब मिलने का इंतज़ार करता है. यह इंतज़ार, कनेक्शन बनाने और मैसेज प्रोसेसर को अनुरोध भेजने के बाद किया जाता है. राऊटर पर I/O टाइमआउट की डिफ़ॉल्ट वैल्यू 57 सेकंड होती है.

अपनी ज़रूरत के हिसाब से, राऊटर के लिए I/O टाइमआउट को 57 सेकंड की डिफ़ॉल्ट वैल्यू से बढ़ाया या घटाया जा सकता है. इसे इन तरीकों से कॉन्फ़िगर किया जा सकता है:

  • वर्चुअल होस्ट में
  • राऊटर पर

इन प्रॉपर्टी की मदद से, राऊटर पर I/O टाइमआउट को कंट्रोल किया जा सकता है:

प्रॉपर्टी का नाम जगह ब्यौरा
proxy_read_timeout वर्चुअल होस्ट

इससे यह तय होता है कि राऊटर, मैसेज प्रोसेसर से जवाब मिलने का इंतज़ार ज़्यादा से ज़्यादा कितने समय तक करेगा. यह इंतज़ार, कनेक्शन बनाने और मैसेज प्रोसेसर को अनुरोध भेजने के बाद किया जाता है.

अगर इस टाइमआउट अवधि में मैसेज प्रोसेसर से कोई जवाब नहीं मिलता है, तो राऊटर का टाइमआउट हो जाता है.

डिफ़ॉल्ट रूप से, यह प्रॉपर्टी, राऊटर पर conf_load_balancing_load.balancing.driver.proxy.read.timeout प्रॉपर्टी के लिए सेट की गई वैल्यू लेती है. डिफ़ॉल्ट वैल्यू 57 सेकंड होती है.

अगर किसी खास वर्चुअल होस्ट के लिए, इस प्रॉपर्टी में टाइमआउट की नई वैल्यू के साथ बदलाव किया जाता है, तो सिर्फ़ उस खास वर्चुअल होस्ट का इस्तेमाल करने वाले एपीआई प्रॉक्सी पर असर पड़ता है.

conf_load_balancing_load.balancing.driver.proxy.read.timeout राऊटर

इससे यह तय होता है कि राऊटर, मैसेज प्रोसेसर से जवाब मिलने का इंतज़ार ज़्यादा से ज़्यादा कितने समय तक करेगा. यह इंतज़ार, कनेक्शन बनाने और मैसेज प्रोसेसर को अनुरोध भेजने के बाद किया जाता है.

अगर इस टाइमआउट अवधि में मैसेज प्रोसेसर से कोई जवाब नहीं मिलता है, तो राऊटर का टाइमआउट हो जाता है.

इस प्रॉपर्टी का इस्तेमाल, इस राऊटर पर मौजूद सभी वर्चुअल होस्ट के लिए किया जाता है.

इस प्रॉपर्टी की डिफ़ॉल्ट वैल्यू 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 राऊटर

इससे यह तय होता है कि राऊटर, सभी मैसेज प्रोसेसर से जवाब मिलने का इंतज़ार ज़्यादा से ज़्यादा कितने समय तक करेगा. यह इंतज़ार, कनेक्शन बनाने और हर मैसेज प्रोसेसर को अनुरोध भेजने के बाद किया जाता है.

यह तब लागू होता है, जब आपके Edge इंस्टॉलेशन में एक से ज़्यादा मैसेज प्रोसेसर हों और गड़बड़ियां होने पर फिर से कोशिश करने की सुविधा चालू हो. इसकी वैल्यू इनमें से कोई एक होती है:

  • conf_load_balancing_load.balancing.driver.proxy.read.timeout की मौजूदा वैल्यू
  • 57 सेकंड की डिफ़ॉल्ट वैल्यू

conf_load_balancing_load.balancing.driver.proxy.read.timeout प्रॉपर्टी की तरह, डिफ़ॉल्ट (सेकंड) के अलावा अन्य यूनिट में भी समयावधि तय की जा सकती है.

शुरू करने से पहले

इस दस्तावेज़ में दिए गए चरणों का इस्तेमाल करने से पहले, पक्का करें कि आपको इन विषयों के बारे में जानकारी हो:

वर्चुअल होस्ट में I/O टाइमआउट कॉन्फ़िगर करना

इस सेक्शन में, किसी संगठन और एनवायरमेंट से जुड़े वर्चुअल होस्ट में I/O टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है. वर्चुअल होस्ट में I/O टाइमआउट को प्रॉपर्टी proxy_read_timeout की मदद से कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, I/O टाइमआउट की वैल्यू को सेकंड में दिखाती है.

वर्चुअल होस्ट को इनमें से किसी एक तरीके से कॉन्फ़िगर किया जा सकता है:

  • Edge यूज़र इंटरफ़ेस (यूआई)
  • Edge API

Edge यूज़र इंटरफ़ेस (यूआई)

Edge यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, वर्चुअल होस्ट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. Edge यूज़र इंटरफ़ेस (यूआई) में लॉग इन करें.
  2. एडमिन > वर्चुअल होस्ट पर जाएं.
  3. वह एनवायरमेंट चुनें जिसमें आपको यह बदलाव करना है.
  4. वह वर्चुअल होस्ट चुनें जिसके लिए आपको I/O टाइमआउट की नई वैल्यू कॉन्फ़िगर करनी है.
  5. प्रॉपर्टी में जाकर, प्रॉक्सी रीड टाइमआउट की वैल्यू को सेकंड में अपडेट करें.

    उदाहरण के लिए, अगर आपको टाइमआउट को 120 सेकंड में बदलना है, तो 120 टाइप करें. यह तरीका, यहां दी गई इमेज में दिखाया गया है:

    प्रॉक्सी के लिए, डेटा पढ़ने का टाइम आउट 120 सेकंड है

  6. बदलाव सेव करें.

Edge API

Edge API का इस्तेमाल करके, वर्चुअल होस्ट को कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:

  1. वर्चुअल होस्ट का मौजूदा कॉन्फ़िगरेशन पाने के लिए, वर्चुअल होस्ट पाने का एपीआई का इस्तेमाल करें. यह तरीका यहां दिखाया गया है:

    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} वर्चुअल होस्ट का नाम है

    वर्चुअल होस्ट के कॉन्फ़िगरेशन का नमूना

        {
          "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. मौजूदा वर्चुअल होस्ट के कॉन्फ़िगरेशन के JSON पेलोड में, properties के तहत proxy_read_timeout प्रॉपर्टी जोड़ें. इसकी वैल्यू सेकंड में होनी चाहिए.

    उदाहरण के लिए, 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 के कॉन्फ़िगरेशन को बदलाव के साथ अपडेट करने के लिए, वर्चुअल होस्ट को अपडेट करने का एपीआई का इस्तेमाल करें. इसके लिए, यह तरीका अपनाएं:

    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 टाइमआउट की पुष्टि करना

इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि Edge API का इस्तेमाल करके, वर्चुअल होस्ट पर I/O टाइमआउट में बदलाव किया गया है या नहीं.

  1. `virtualhost` का 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 टाइमआउट को कॉन्फ़िगर करने का तरीका बताया गया है. राऊटर की conf_load_balancing_load.balancing.driver.proxy.read.timeout प्रॉपर्टी की मदद से, I/O टाइमआउट को कॉन्फ़िगर किया जा सकता है. यह प्रॉपर्टी, I/O टाइमआउट की वैल्यू को सेकंड में दिखाती है.

राऊटर पर 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

    उदाहरण के लिए, राऊटर पर I/O टाइमआउट को 120 सेकंड में बदलने के लिए, यह लाइन जोड़ें:

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

    I/O टाइमआउट को मिनटों में भी बदला जा सकता है. उदाहरण के लिए, टाइमआउट को दो मिनट में बदलने के लिए, यह लाइन जोड़ें:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
  4. अपने बदलाव सेव करें.
  5. पक्का करें कि इस प्रॉपर्टी वाली फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. यह तरीका यहां दिखाया गया है:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
  6. राऊटर को रीस्टार्ट करें. यह तरीका यहां दिखाया गया है:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  7. अगर आपके पास एक से ज़्यादा राऊटर हैं, तो ऊपर दिए गए चरणों को सभी राऊटर पर दोहराएं.

राऊटर पर I/O टाइमआउट की पुष्टि करना

इस सेक्शन में, यह पुष्टि करने का तरीका बताया गया है कि राऊटर पर I/O टाइमआउट में बदलाव किया गया है या नहीं.

राऊटर पर I/O टाइमआउट सेट करने के लिए, भले ही आपने टोकन conf_load_balancing_load.balancing.driver.proxy.read.timeout का इस्तेमाल किया हो, लेकिन आपको यह पुष्टि करनी होगी कि असल प्रॉपर्टी proxy_read_timeout को नई वैल्यू पर सेट किया गया है या नहीं.

  1. /opt/nginx/conf.d डायरेक्ट्री में, proxy_read_timeout प्रॉपर्टी खोजें और देखें कि इसे नई वैल्यू पर सेट किया गया है या नहीं. इसके लिए, यह तरीका अपनाएं:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
  2. अगर राऊटर पर I/O टाइमआउट की नई वैल्यू सेट हो जाती है, तो ऊपर दी गई कमांड सभी वर्चुअल होस्ट के कॉन्फ़िगरेशन वाली फ़ाइलों में नई वैल्यू दिखाती है.

    जब I/O टाइमआउट 120 सेकंड होता है, तब ऊपर दी गई grep कमांड से मिला नतीजा यहां दिया गया है:

    /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_timeout प्रॉपर्टी को 0-default.conf में 120 की नई वैल्यू पर सेट किया गया है. यह डिफ़ॉल्ट वर्चुअल होस्ट के लिए कॉन्फ़िगरेशन वाली फ़ाइल है. इससे पता चलता है कि राऊटर पर I/O टाइमआउट को 120 सेकंड पर कॉन्फ़िगर किया गया है.

  3. अगर आपको अब भी proxy_read_timeout प्रॉपर्टी की पुरानी वैल्यू दिख रही है, तो पुष्टि करें कि आपने राऊटर पर I/O टाइमआउट कॉन्फ़िगर करना में बताए गए सभी चरणों को सही तरीके से फ़ॉलो किया है. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को फिर से सही तरीके से दोहराएं.
  4. अगर अब भी I/O टाइमआउट में बदलाव नहीं किया जा सकता है, तो Apigee Edge के सहायता दल से संपर्क करें.

आगे क्या?

मैसेज प्रोसेसर में I/O टाइमआउट कॉन्फ़िगर करने के बारे में जानें