এনজিআইএনএক্সে পৃথক পিএইচপি-এফপিএম পুল কীভাবে সেট আপ করবেন
প্রকাশিত: ১৫ ফেব্রুয়ারী, ২০২৫ এ ১১:৫৪:৩৭ AM UTC
এই নিবন্ধে, আমি একাধিক পিএইচপি-এফপিএম পুল চালানোর জন্য প্রয়োজনীয় কনফিগারেশন পদক্ষেপগুলি অতিক্রম করি এবং ফাস্টসিজিআইয়ের মাধ্যমে এনজিআইএনএক্সকে তাদের সাথে সংযুক্ত করি, ভার্চুয়াল হোস্টগুলির মধ্যে প্রক্রিয়া বিচ্ছেদ এবং বিচ্ছিন্নতার অনুমতি দেয়।
How to Set Up Separate PHP-FPM Pools in NGINX
এই পোস্টের তথ্যটি উবুন্টু সার্ভার 14.04 x64 এ চলমান NGINX 1.4.6 এবং PHP-FPM 5.5.9 এর উপর ভিত্তি করে। এটি অন্যান্য সংস্করণের জন্য বৈধ হতে পারে বা নাও হতে পারে। (আপডেট: আমি নিশ্চিত করতে পারি যে উবুন্টু সার্ভার 24.04, পিএইচপি-এফপিএম 8.3 এবং এনজিআইএনএক্স 1.24.0 হিসাবে, এই পোস্টের সমস্ত নির্দেশাবলী এখনও কাজ করে)
একই পুলে সবকিছু চালানোর পরিবর্তে একাধিক পিএইচপি-এফপিএম চাইল্ড প্রসেস পুল স্থাপনের বেশ কয়েকটি সুবিধা রয়েছে। নিরাপত্তা, বিচ্ছেদ/বিচ্ছিন্নতা এবং সম্পদ ব্যবস্থাপনা কয়েকটি প্রধান বিষয় মনে আসে।
আপনার অনুপ্রেরণা যাই হোক না কেন, এই পোস্টটি আপনাকে এটি করতে সহায়তা করবে :-)
পার্ট 1 - একটি নতুন পিএইচপি-এফপিএম পুল সেট আপ করুন
প্রথমত, আপনাকে ডিরেক্টরিটি সনাক্ত করতে হবে যেখানে পিএইচপি-এফপিএম তার পুল কনফিগারেশনগুলি সংরক্ষণ করে। উবুন্টু 14.04 এ, এটি ডিফল্টরূপে /etc/php5/fpm/pool.d হয়। সম্ভবত ইতিমধ্যে www.conf নামে একটি ফাইল রয়েছে, যা ডিফল্ট পুলের কনফিগারেশন ধারণ করে। আপনি যদি সম্ভাবনার আগে সেই ফাইলটি না দেখে থাকেন তবে আপনার সেটআপের জন্য এটিতে থাকা সেটিংসটি টুইঙ্ক করা উচিত কারণ ডিফল্টগুলি মোটামুটি আন্ডারপাওয়ারড সার্ভারের জন্য, তবে আপাতত কেবল এটির একটি অনুলিপি তৈরি করুন যাতে আমাদের স্ক্র্যাচ থেকে শুরু করতে হবে না:
অবশ্যই, আপনি আপনার পুলটিকে যা বলতে চান তার সাথে "মাইপুল" প্রতিস্থাপন করুন।
এখন ন্যানো বা আপনি যে কোনও পাঠ্য সম্পাদক পছন্দ করেন তা ব্যবহার করে নতুন ফাইলটি খুলুন এবং এটি আপনার উদ্দেশ্য অনুসারে সামঞ্জস্য করুন। আপনি সম্ভবত চাইল্ড প্রসেস নম্বরগুলি টুইট করতে চাইবেন এবং সম্ভবত পুলটি কোন ব্যবহারকারী এবং গোষ্ঠীর অধীনে চলে, তবে আপনাকে অবশ্যই যে দুটি সেটিংস পরিবর্তন করতে হবে তা হ'ল পুলের নাম এবং সকেটটি এটি শুনছে, অন্যথায় এটি বিদ্যমান পুলের সাথে দ্বন্দ্ব করবে এবং জিনিসগুলি কাজ করা বন্ধ করে দেবে।
পুলের নামটি ফাইলের শীর্ষের কাছে, বর্গাকার বন্ধনীতে আবদ্ধ। ডিফল্টরূপে এটি [www]। আপনি যা চান তা পরিবর্তন করুন; আপনি কনফিগারেশন ফাইলটির নামকরণ করার সাথে সাথে আমি একই পরামর্শ দিচ্ছি, তাই এই উদাহরণের জন্য এটি [মাইপুল] এ পরিবর্তন করুন। আপনি যদি এটি পরিবর্তন না করেন তবে মনে হচ্ছে পিএইচপি-এফপিএম কেবল সেই নামের সাথে প্রথম কনফিগারেশন ফাইলটি লোড করবে, যা জিনিসগুলি ভেঙে যাওয়ার সম্ভাবনা রয়েছে।
তারপরে আপনাকে যে সকেট বা ঠিকানাটি শুনছেন তা পরিবর্তন করতে হবে, যা শোনার নির্দেশিকা দ্বারা সংজ্ঞায়িত করা হয়। ডিফল্টরূপে, পিএইচপি-এফপিএম ইউনিক্স সকেট ব্যবহার করে তাই আপনার শোনার নির্দেশটি সম্ভবত এর মতো দেখাবে:
আপনি এটি যে কোনও বৈধ নামে পরিবর্তন করতে পারেন, তবে আবার, আমি কনফিগারেশন ফাইলের নামের অনুরূপ কিছু দিয়ে আটকে থাকার পরামর্শ দিচ্ছি, যাতে আপনি উদাহরণস্বরূপ এটি সেট করতে পারেন:
ঠিক আছে, ফাইলটি সংরক্ষণ করুন এবং পাঠ্য সম্পাদক থেকে প্রস্থান করুন।
পার্ট 2 - এনজিআইএনএক্স ভার্চুয়াল হোস্ট কনফিগারেশন আপডেট করুন
এখন আপনাকে ফাস্টসিজিআই কনফিগারেশন সহ এনজিআইএনএক্স ভার্চুয়াল হোস্ট ফাইলটি খুলতে হবে যা আপনি একটি নতুন পুলে পরিবর্তন করতে চান - বা পরিবর্তে, নতুন সকেটের সাথে সংযোগ স্থাপন করতে চান।
উবুন্টু 14.04 এ ডিফল্টরূপে, এগুলি /etc/nginx/sites-উপলব্ধ অধীনে সংরক্ষণ করা হয়, তবে অন্য কোথাও সংজ্ঞায়িত করা যেতে পারে। আপনার ভার্চুয়াল হোস্ট কনফিগারেশনগুলি কোথায় অবস্থিত তা সম্ভবত আপনি সবচেয়ে ভাল জানেন ;-)
আপনার প্রিয় পাঠ্য সম্পাদকটিতে প্রাসঙ্গিক কনফিগারেশন ফাইলটি খুলুন এবং পিএইচপি-এফপিএম সকেট সংজ্ঞায়িত fastcgi_pass নির্দেশটি (যা অবশ্যই কোনও অবস্থানের প্রসঙ্গে থাকতে হবে) সন্ধান করুন। আপনাকে অবশ্যই এই মানটি পরিবর্তন করতে হবে যাতে এটি প্রথম ধাপের অধীনে তৈরি নতুন পিএইচপি-এফপিএম পুল কনফিগারেশনের সাথে মেলে, তাই আমাদের উদাহরণটি চালিয়ে আপনি এটি পরিবর্তন করবেন:
fastcgi_pass ইউনিক্স:/var/run/php5-fpm-mypool.sock;
তারপর সেই ফাইলটিও সেভ করে ক্লোজ করে দিন। আপনার কাজ এখন প্রায় শেষ।
পার্ট 3 - পিএইচপি-এফপিএম এবং এনজিআইএনএক্স পুনরায় চালু করুন
আপনার করা কনফিগারেশন পরিবর্তনগুলি প্রয়োগ করতে, পিএইচপি-এফপিএম এবং এনজিআইএনএক্স উভয়ই পুনরায় চালু করুন। এটি পুনরায় চালু করার পরিবর্তে পুনরায় লোড করা যথেষ্ট হতে পারে তবে কোন সেটিংস পরিবর্তন করা হয়েছে তার উপর নির্ভর করে আমি এটি কিছুটা হিট এবং মিস বলে মনে করি। বিশেষ ক্ষেত্রে, আমি পুরানো পিএইচপি-এফপিএম শিশু প্রক্রিয়াগুলি এখনই মারা যেতে চেয়েছিলাম, তাই পিএইচপি-এফপিএম পুনরায় চালু করার প্রয়োজন ছিল, তবে এনজিআইএনএক্সের জন্য একটি পুনরায় লোড যথেষ্ট হতে পারে। নিজের জন্য চেষ্টা করে দেখুন।
sudo service nginx restart
এবং ভয়েলা, আপনার কাজ শেষ। আপনি যদি সবকিছু সঠিকভাবে করেন তবে আপনি যে ভার্চুয়াল হোস্টটি পরিবর্তন করেছেন তা এখন নতুন পিএইচপি-এফপিএম পুল ব্যবহার করা উচিত এবং অন্য কোনও ভার্চুয়াল হোস্টের সাথে শিশু প্রক্রিয়াগুলি ভাগ করা উচিত নয়।