Apache/Nginx এর সাথে CherryPy কনফিগারেশন

Deployment এবং Production Configuration - চেরিপাই (CherryPy) - Web Development

362

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-py3
    
  • CentOS/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 nginx
    
  • CentOS/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 বিভিন্ন রিকোয়েস্ট হ্যান্ডেল করে।
Content added By
Promotion

Are you sure to start over?

Loading...