1. Home
  2. IBIT
  3. Employee-Monitor-System
  4. gunicorn start স্টেজ সার্ভার

gunicorn start স্টেজ সার্ভার

ঠিক আছে — তুমি Apache ব্যবহার করছ, এবং gunicorn port 8080 এ চালিয়ে Apache → Gunicorn proxy method ব্যবহার করতে চাও।

তাহলে এটাই সবচেয়ে stable ও সহজ method
আমি তোমাকে FULL working Apache + Gunicorn setup দিচ্ছি।


✅ STEP–1: gunicorn.service ঠিক করো (port 8080 এ bind)

ফাইল খুলো:

sudo nano /etc/systemd/system/gunicorn.service

এর ভেতরে রাখো:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/backend/CampaignProject
ExecStart=/home/ubuntu/backend/myenv/bin/gunicorn --access-logfile - --workers 3 --bind 0.0.0.0:8080 CampaignProject.wsgi:application

[Install]
WantedBy=multi-user.target

Save → exit


✅ STEP–2: Gunicorn reload + restart

sudo systemctl daemon-reload
sudo systemctl restart gunicorn
sudo systemctl enable gunicorn

Gunicorn চলছে কিনা দেখো:

sudo systemctl status gunicorn

যদি সব ঠিক থাকে:

Should show → active (running)


✅ STEP–3: Apache config ঠিক করো (port proxy)

এখন Apache site config open করো:

sudo nano /etc/apache2/sites-available/000-default.conf

ভেতরে এইটা দাও:

<VirtualHost *:80>
    ServerName stage-api.blastify.ai

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

✅ STEP–4: Apache modules enable + restart

sudo a2enmod proxy proxy_http
sudo systemctl restart apache2

🎉 এখন কাজ করবে:

🔗 https://stage-api.blastify.ai/api/auth/login/

100% without downtime, without socket issues.


যদি তুমি চাও আমি তোমার সার্ভারের structure দেখে verify করে দিতে পারি, জানিও।

Nginx এ গেলে কতটা ফাস্ট হবে?
➡ সাধারণত Nginx = faster, lightweight, high-performance
➡ Static file serve করতে Apache এর চেয়ে অনেক দ্রুত
➡ Reverse proxy হিসেবেও Apache এর চেয়ে efficient
➡ Gunicorn + Nginx = Django deployment এর industry standard

তবে তুমি পুরো Apache বন্ধ করতে চাও না—
🔸 শুধু একটি website / port Apache থেকে বন্ধ করতে চাও
🔸 বাকি Apache websites/services যেন চলে

এটা সম্পূর্ণভাবে করা যায়। নিচে full safe method দিলাম।


✅ Step–1: Apache এ যে সাইটটি চলছে সেটি disable করো

Apache এ প্রতিটি সাইট .conf ফাইল দ্বারা রান হয়।
তুমি যেটা disable করতে চাও:

চেক করো:

ls /etc/apache2/sites-enabled/

মনে করো তোমার Django site হচ্ছে → 000-default.conf

Disable করো:

sudo a2dissite 000-default.conf
sudo systemctl reload apache2

✔ এটা কেবল এই সাইটটাকে Apache থেকে বন্ধ করবে
✔ Apache এর অন্য সাইটগুলো চলবে স্বাভাবিকভাবে


✅ Step–2: Apache এর 80 পোর্ট free করা (যদি শুধুমাত্র এই সাইট 80 এ bind ছিল)

চেক করো Apache কোন port এ bind করেছে:

sudo ss -tulpn | grep apache

যদি শুধু একটাই site ছিল 80 এ, তাহলে disable করার পর 80 port free হয়ে যাবে।
যদি অন্য সাইটও 80 এ থাকে, তাহলে Nginx অন্য port ব্যবহার করবে (যেমন 81)।


🟦 কেস–১: Apache আর 80 পোর্ট ব্যবহার করছে না

→ তাহলে Nginx সরাসরি 80 পোর্টে চালাবে।

🟧 কেস–২: Apache অন্য সাইটে 80 ব্যবহার করছে

→ তাহলে Nginx 8081 বা 81 এ চলবে
→ তারপর তুমি Cloudflare / DNS থেকে pointing সেট করবে


✅ Step–3: Nginx install

sudo apt update
sudo apt install nginx -y

✅ Step–4: Nginx + Gunicorn setup (Recommended)

Gunicorn আগেই port 8080 এ চলছে।

এখন Nginx config:

sudo nano /etc/nginx/sites-available/campaign

ভেতরে দাও:

server {
    listen 80;
    server_name stage-api.blastify.ai;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Enable করো:

sudo ln -s /etc/nginx/sites-available/campaign /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx

🎉 এখন কী হবে?

✔ Nginx → Gunicorn → Django

✔ Apache এর অন্য সাইট unaffected

✔ Apache + Nginx দুটোই একই সার্ভারে coexist করবে

✔ তোমার API অনেক fast serve করবে


💡 Bonus: Nginx static file serve করলে আরও দ্রুত হবে

location /static/ {
    alias /home/ubuntu/backend/CampaignProject/static/;
}

location /media/ {
    alias /home/ubuntu/backend/CampaignProject/media/;
}

চাইলে আমি তোমার সার্ভারের port list দেখে বলব কোন config safest হবে

👉 sudo ss -tulpn রান করে আমাকে send করো
👉 Apache কোন সাইট চালায় তা send করো:
ls /etc/apache2/sites-enabled/

How can we help?