खराब कॉन्फ़िगरेशन फ़ाइलें

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

पर क्लिक करें.

समस्या का ब्यौरा

Edge Router को NGINX का इस्तेमाल करके लागू किया जाता है. Edge को अपग्रेड करने की प्रोसेस के दौरान या राउटर के कॉन्फ़िगरेशन में बदलाव करते समय, आपको NGINX कॉन्फ़िगरेशन से जुड़ी गड़बड़ियां दिख सकती हैं. ये गड़बड़ियां होने पर, Edge उन सभी NGINX कॉन्फ़िगरेशन फ़ाइलों को /opt/nginx/conf.d के तौर पर मार्क करता है जिनकी वजह से समस्या हुई है:

-rw-r--r-- 1 apigee apigee 522 Jul 20 08:41 0-default.conf.bad 
-rw-r--r-- 1 apigee apigee 577 Jul 20 08:42 0-fallback.conf 
-rw-r--r-- 1 apigee apigee 1062 Jul 20 08:18 0-map.conf 
-rw-r--r-- 1 apigee apigee 1887 Jul 20 08:42 custorg_test_default.conf.bad

गड़बड़ी के मैसेज

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

संभावित वजहें

आम तौर पर, NGINX कॉन्फ़िगरेशन फ़ाइलों को खराब के तौर पर मार्क किया जाता है. ऐसा इसलिए होता है, क्योंकि /opt/apigee/customer/application/router.properties फ़ाइल में NGINX प्रॉपर्टी के लिए गलत वैल्यू सेट की गई हैं या वर्चुअल होस्ट में गलत बदलाव किए गए हैं.

संक्रमण की जांच

  1. /opt/nginx/conf.d डायरेक्ट्री में मौजूद फ़ाइलों के नाम से .bad सफ़िक्स हटाएं, ताकि उनके नाम .conf पर खत्म हों.
  1. कॉन्फ़िगरेशन की जांच करने वाले NGINX टूल को चलाएं, ताकि गड़बड़ी की वजह का पता लगाया जा सके:
    /opt/nginx/scripts/apigee-nginx configtest

रिज़ॉल्यूशन

  1. अगर कॉन्फ़िगरेशन की जांच करने पर, खराब कॉन्फ़िगरेशन वाली फ़ाइलों की वजह का पता चलता है, तो समस्या को ठीक करें. इसके लिए, /opt/apigee/customer/application/router.properties फ़ाइल या वर्चुअल होस्ट में मौजूद किसी प्रॉपर्टी में ज़रूरी बदलाव करें.
  1. /opt/nginx/conf.d डायरेक्ट्री हटाएं:
    rm -rf /opt/nginx/conf.d
  1. राऊटर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  1. अब आपको /opt/nginx/conf.d डायरेक्ट्री में खराब कॉन्फ़िगरेशन वाली फ़ाइलें नहीं दिखनी चाहिए.

अगर समस्या बनी रहती है, तो Apigee Edge की सहायता टीम से संपर्क करें.

यहां एक उदाहरण दिया गया है. इसमें NGINX कॉन्फ़िगरेशन टेस्ट से मिली जानकारी के आधार पर, समस्या को ठीक करने का तरीका बताया गया है.

पहला उदाहरण: NGINX प्रॉपर्टी के लिए सेट की गई गलत वैल्यू

  1. मान लें कि आपने /opt/apigee/customer/application/router.properties फ़ाइल में “proxy_busy_buffers_size” प्रॉपर्टी को 128K पर अपडेट किया है. इसे यहां दिखाया गया है:
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k 

इस वजह से, कॉन्फ़िगरेशन फ़ाइलों को /opt/apigee/nginx/conf.d डायरेक्ट्री में खराब के तौर पर मार्क कर दिया गया था.

  1. कॉन्फ़िगरेशन की जांच करने के लिए, NGINX configtest कमांड चलाएं. इससे आपको गड़बड़ी की वजह पता चलेगी:
    /opt/nginx/scripts/apigee-nginx configtest
    nginx: [emerg] "proxy_busy_buffers_size" must be equal to or greater than the maximum of the value of "proxy_buffer_size" and one of the "proxy_buffers" in /opt/nginx/conf/nginx.conf:47
    nginx: configuration file /opt/nginx/conf/nginx.conf test failed

configtest के नतीजों से पता चलता है कि प्रॉपर्टी proxy_busy_buffers_size की वैल्यू, proxy_buffer_size की वैल्यू के बराबर या उससे ज़्यादा होनी चाहिए. हालांकि, इसे गलत वैल्यू के साथ सेट किया गया है.

  1. 0-default.conf फ़ाइल में, proxy_buffer_size और proxy_busy_buffers_size प्रॉपर्टी के लिए सेट की गई वैल्यू देखें:
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 128k;
  1. /opt/apigee/customer/application/router.properties फ़ाइल में proxy_busy_buffers_size की वैल्यू को 512K पर अपडेट करें:
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
  1. /opt/nginx/conf.d फ़ोल्डर हटाने के लिए:
    rm -rf /opt/nginx/conf.d
  1. राऊटर को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart

इस समस्या को ठीक कर दिया गया है और खराब कॉन्फ़िगरेशन फ़ाइलें हटा दी गई हैं.

दूसरा उदाहरण: NGINX को अपग्रेड नहीं किया जा सका (सिर्फ़ Private Cloud 18.01 के लिए)

मान लें कि आपने configtest चलाया और आपको ये जवाब मिले:

/apigee-nginx configtest

 nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok
 nginx: [emerg] zero size shared memory zone "perclient"
 nginx: configuration file /opt/nginx/conf/nginx.conf test failed

इस गड़बड़ी से पता चलता है कि NGINX को 1.10.x से 1.12.x पर अपग्रेड नहीं किया जा सका. Edge Private Cloud को वर्शन 18.01 पर अपग्रेड करने से जुड़ी एक ज्ञात गड़बड़ी है.

इस समस्या का सही तरीके से पता लगाने के लिए, यह तरीका अपनाएं. हालांकि, यह तरीका सिर्फ़ तब काम करेगा, जब Private Cloud 18.01 का इस्तेमाल किया जा रहा हो:

rpm -aq | grep apigee-nginx

इस कमांड से, इंस्टॉल किए गए आरपीएम को वर्शन 1.12.x के तौर पर दिखाया जाना चाहिए. अगर ऐसा नहीं होता है, तो यह तरीका अपनाएं:

  1. एज-राउटर कॉम्पोनेंट को बंद करें.
  2. edge-router कॉम्पोनेंट का बैकअप लें.
  3. apigee-nginx 1.2.x पर अपग्रेड करने के लिए, यह निर्देश चलाएं:
  4. sudo yum update apigee-nginx
  5. /opt/apigee/nginx/conf.d. में मौजूद सभी *.bad फ़ाइलें मिटाएं
  6. edge-router कॉम्पोनेंट को रीस्टार्ट करें.