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

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

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

    सार्वजनिक क्लाउड उपयोगकर्ता

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

    प्राइवेट क्लाउड उपयोगकर्ता

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

    सार्वजनिक क्लाउड उपयोगकर्ता

    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>
                

    प्राइवेट क्लाउड उपयोगकर्ता

    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 कॉन्फ़िगरेशन पाने के लिए, वर्चुअल होस्ट पाएं एपीआई लागू करें:

    सार्वजनिक क्लाउड उपयोगकर्ता

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

    प्राइवेट क्लाउड उपयोगकर्ता

    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 टाइम आउट को राऊटर प्रॉपर्टी से कॉन्फ़िगर किया जा सकता है. conf_load_balancing_load.balancing.driver.proxy.read.timeout, जो 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 टाइम आउट कॉन्फ़िगर करने के बारे में जानें