কনফিগারেশন ফাইলে সমস্যা

আপনি 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

সমস্যার মেসেজ

আপনি কোনও সমস্যার মেসেজ দেখতে পাবেন না। তবে, খারাপ কনফিগারেশন ফাইলের কারণে আপনি হয়ত নিজের API প্রক্সি এক্সিকিউট করতে পারবেন না।

সম্ভাব্য কারণ

সাধারণত, NGINX কনফিগারেশন ফাইলকে খারাপ হিসেবে চিহ্নিত করা হয় কারণ /opt/apigee/customer/application/router.properties ফাইলে NGINX প্রপার্টিতে ভুল ভ্যালু সেট করা হয় অথবা ভার্চুয়াল হোস্টে ভুল পরিবর্তন করা হয়।

ডায়াগনসিস

  1. /opt/nginx/conf.d ডিরেক্টরিতে থাকা ফাইলের নাম থেকে .bad প্রত্যয় সরিয়ে দিন, যাতে সেগুলি .conf দিয়ে শেষ হয়।
  1. কেন কাজ করছে না তা নির্ধারণ করতে NGINX configtest টুল রান করান:
    /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 (শুধুমাত্র প্রাইভেট ক্লাউড 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

এই কমান্ডটি ইনস্টল করা rpm-কে ভার্সন 1.12.x হিসেবে রিটার্ন করবে। এটি না হলে, এইসব ধাপ অনুসরণ করুন:

  1. এজ-রাউটার কম্পোনেন্ট বন্ধ করুন।
  2. এজ-রাউটার কম্পোনেন্টের ব্যাক-আপ নিন।
  3. apigee-nginx 1.2.x ভার্সনে আপগ্রেড করতে এই কমান্ডটি চালান:
  4. sudo yum update apigee-nginx
  5. /opt/apigee/nginx/conf.d.-এর অধীনে থাকা সব *.bad ফাইল মুছে দাও
  6. এজ-রাউটার কম্পোনেন্ট রিস্টার্ট করুন।