CherryPy একটি বিল্ট-ইন HTTP সার্ভার দিয়ে কাজ করতে পারে, তবে এটি বড় আকারের অ্যাপ্লিকেশনগুলির জন্য কিছু সীমাবদ্ধতা থাকতে পারে। তাই, উন্নত পারফরম্যান্স এবং স্কেলেবিলিটি নিশ্চিত করার জন্য CherryPy অ্যাপ্লিকেশনকে Apache বা Nginx এর সাথে কনফিগার করা যেতে পারে। এই দুইটি ওয়েব সার্ভারই ওয়েব অ্যাপ্লিকেশনগুলির জন্য শক্তিশালী এবং স্কেলেবল পরিবেশ প্রদান করে।
এখানে আমরা দেখব কীভাবে CherryPy অ্যাপ্লিকেশনকে Apache এবং Nginx এর সাথে কনফিগার করা যায়।
CherryPy এর সাথে Apache কনফিগারেশন
Apache সার্ভারকে CherryPy অ্যাপ্লিকেশন চলানোর জন্য mod_wsgi বা mod_proxy মডিউল ব্যবহার করতে হয়। mod_wsgi প্রাথমিকভাবে Python অ্যাপ্লিকেশন চালানোর জন্য ব্যবহৃত হয়।
ধাপ ১: Apache ইনস্টলেশন এবং mod_wsgi মডিউল ইনস্টল করা
প্রথমে Apache ওয়েব সার্ভার এবং mod_wsgi ইনস্টল করতে হবে:
Ubuntu/Debian:
sudo apt update sudo apt install apache2 sudo apt install libapache2-mod-wsgi-py3CentOS/RHEL:
sudo yum install httpd sudo yum install mod_wsgi
ধাপ ২: CherryPy অ্যাপ্লিকেশন সেটআপ
আপনার CherryPy অ্যাপ্লিকেশনটির ফোল্ডার তৈরি করুন। উদাহরণস্বরূপ:
/var/www/myapp/
├── app.py
└── /templates
ধাপ ৩: Apache কনফিগারেশন
আপনার Apache কনফিগারেশন ফাইলে mod_wsgi ব্যবহার করে CherryPy অ্যাপ্লিকেশনটি লোড করতে হবে। এই কনফিগারেশনটি /etc/apache2/sites-available/myapp.conf ফাইলে রাখুন।
<VirtualHost *:80>
ServerName myapp.com
DocumentRoot /var/www/myapp
WSGIScriptAlias / /var/www/myapp/app.wsgi
WSGIDaemonProcess myapp user=www-data group=www-data threads=5
WSGIProcessGroup myapp
<Directory /var/www/myapp>
Require all granted
</Directory>
</VirtualHost>
ধাপ ৪: CherryPy অ্যাপ্লিকেশন WSGI ফাইল তৈরি করা
আপনার CherryPy অ্যাপ্লিকেশন ফোল্ডারে একটি app.wsgi ফাইল তৈরি করুন:
import cherrypy
from myapp import MyApp # আপনার CherryPy অ্যাপ্লিকেশনের ক্লাস
cherrypy.tree.graft(MyApp(), "/")
cherrypy.engine.start()
ধাপ ৫: Apache সার্ভার রিস্টার্ট করা
Apache কনফিগারেশন সম্পন্ন হলে, Apache সার্ভারটি রিস্টার্ট করুন:
sudo systemctl restart apache2
এখন আপনি http://myapp.com এ CherryPy অ্যাপ্লিকেশনটি অ্যাক্সেস করতে পারবেন।
CherryPy এর সাথে Nginx কনফিগারেশন
Nginx কে সাধারণত একটি reverse proxy হিসেবে ব্যবহার করা হয়। Nginx এ CherryPy অ্যাপ্লিকেশন রিডাইরেক্ট করার জন্য proxy_pass নির্দেশনা ব্যবহার করা হয়।
ধাপ ১: Nginx ইনস্টলেশন
Ubuntu/Debian:
sudo apt update sudo apt install nginxCentOS/RHEL:
sudo yum install nginx
ধাপ ২: CherryPy অ্যাপ্লিকেশন সেটআপ
CherryPy অ্যাপ্লিকেশনটি চলবে, কিন্তু Nginx ব্যবহার করে রিভার্স প্রক্সি করা হবে। উদাহরণস্বরূপ:
/var/www/myapp/
├── app.py
ধাপ ৩: Nginx কনফিগারেশন
Nginx কনফিগারেশন ফাইলে CherryPy অ্যাপ্লিকেশন রিভার্স প্রক্সি করতে নিম্নলিখিত সেটিংস যোগ করুন। কনফিগারেশন ফাইলটি /etc/nginx/sites-available/myapp এ রাখুন:
server {
listen 80;
server_name myapp.com;
location / {
proxy_pass http://127.0.0.1:8080; # CherryPy সার্ভারের URL
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ধাপ ৪: CherryPy অ্যাপ্লিকেশন চালানো
CherryPy অ্যাপ্লিকেশনটি চালানোর জন্য সাধারণভাবে আপনি এটি নীচের মতো চালাবেন:
python /var/www/myapp/app.py
এটি CherryPy সার্ভারকে http://127.0.0.1:8080 এ চালাবে।
ধাপ ৫: Nginx সার্ভার রিস্টার্ট করা
Nginx কনফিগারেশনটি সম্পন্ন হলে, Nginx সার্ভারটি রিস্টার্ট করুন:
sudo systemctl restart nginx
এখন আপনি http://myapp.com এ CherryPy অ্যাপ্লিকেশনটি অ্যাক্সেস করতে পারবেন।
CherryPy কে Apache বা Nginx এর সাথে কনফিগার করার মাধ্যমে আপনি উচ্চ পারফরম্যান্স এবং স্কেলেবিলিটি অর্জন করতে পারবেন। Apache সাধারণত mod_wsgi মডিউল ব্যবহার করে CherryPy অ্যাপ্লিকেশন হোস্ট করে, যেখানে Nginx রিভার্স প্রক্সি হিসেবে কাজ করে এবং CherryPy অ্যাপ্লিকেশনকে হ্যান্ডেল করে।
- Apache ব্যবহারে WSGI এর মাধ্যমে CherryPy অ্যাপ্লিকেশন সরাসরি পরিচালিত হয়।
- Nginx ব্যবহারে রিভার্স প্রক্সি হিসেবে CherryPy অ্যাপ্লিকেশন চলে এবং Nginx বিভিন্ন রিকোয়েস্ট হ্যান্ডেল করে।
Read more