Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membina Aplikasi Django Boleh Skala dengan Gunicorn dan Nginx

Membina Aplikasi Django Boleh Skala dengan Gunicorn dan Nginx

Patricia Arquette
Patricia Arquetteasal
2024-09-26 06:40:03919semak imbas

Building a Scalable Django Application with Gunicorn and Nginx

  • Menskalakan apl web anda adalah penting untuk berjaya.
  • Django hebat, tetapi Gunicorn dan Nginx diperlukan untuk kebolehskalaan sebenar.
  • Siaran ini menunjukkan kepada anda cara membina apl Django berskala dengan Gunicorn dan Nginx.
  • Siaran ini mengikuti dalam "Kali Linux". Anda boleh menggunakan mana-mana OS berasaskan Linux.

pengenalan:

  • Membina aplikasi web yang boleh mengendalikan bilangan pengguna yang semakin meningkat dan permintaan adalah penting untuk sebarang projek yang berjaya.
  • Django, rangka kerja Python yang berkuasa, menyediakan asas yang kukuh, tetapi untuk kebolehskalaan sebenar, anda perlu memanfaatkan kuasa alatan seperti Gunicorn dan Nginx.
  • Siaran ini akan membimbing anda melalui proses menyediakan aplikasi Django berskala menggunakan Gunicorn dan Nginx, memastikan tapak web anda boleh mengendalikan permintaan pangkalan pengguna yang semakin meningkat.

⚙️ Menyediakan -

  • Saya melakukan ini di Linux.
  • Semak dahulu python3, pip, nginx Dipasang atau tidak.
  • Untuk memasang gunakan arahan ini (pasang di rumah/Desktop atau terminal baharu)
sudo apt install python3 python3-pip nginx 
  • Sekarang cipta persekitaran Maya (buat folder baharu ? untuk ini)
  • Aktifkan persekitaran
source environment_name/bin/activate   # use name created above "environment_name"
  • Sekarang Pasang pakej ? dalam persekitaran
    • django, gunicorn
pip install django
pip install gunicorn

// or directly install both
pip install django gunicorn

Mencipta Projek Django

  • Gunakan arahan ini untuk mencipta projek Django
django-admin startproject myproject      # use any name "myproject"

Buat Fail Konfigurasi Gunicorn

  • Gunakan arahan ini
nano gunicorn_conf.py  # use any name but using same better "gunicorn_conf.py"
  • Tambah kod berikut dalam "gunicorn_config.py"
import multiprocessing

bind = '127.0.0.1:8000' # Django running port/link
workers = multiprocessing.cpu_count() * 2 + 1
  • Simpan fail menggunakan "CTRL + o"(untuk menyimpan), tekan ENTER, "CTRL + X"(untuk keluar)
  • Ini akan mewujudkan pekerja dan kami juga harus menambah pautan larian Django kami. ### Jalankan projek/aplikasi Django dengan gunicorn
  • Mula-mula menavigasi ke folder projek
cd myproject   # navigate to Django Project "myproject"
  • Sekarang jalankan arahan ini
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py  # here myapp is myproject

# here "myapp" is a Django project name, and at last gunicorn_conf.py is a gunicorn configuration file which created above/before.
  • Sekarang buat beberapa perubahan dalam projek Django
  • Mula-mula tukar beberapa kod dalam settings.py dalam folder projek. Direktori myproject/myproject/settings.py > Projek Django
  • Untuk ini gunakan mana-mana editor kod seperti Kod VS. Untuk membuka dari terminal gunakan arahan ini
code- oss

# to open vs code from terminal
  • Tambahkan kod ini
# example code
ALLOWED_HOSTS = ['localhost', '0.0.0.0', '127.0.0.1'] # use IP address here
  • Dalam arahan di atas kami menggunakan alamat IP, untuk membuka terminal baharu yang lain dan jalankan arahan ini untuk mendapatkan semua tentang rangkaian.
ifconfig

Buat Fail Konfigurasi Nginx

  • Buka terminal baharu yang lain, jalankan arahan ini
sudo nano /etc/nginx/sites-available/myapp       # use any name "myapp"

# better use vs code instead of nano
sudo code- oss /etc/nginx/sites-available/myapp   # check code-oss
  • Tambah kod dalam fail nginx itu
server {
    listen 80;
    server_name your_domain.com;  # Replace with your domain or IP address
    # example for aboveline: server_name 'ipaddress' 'another domain' ;

    location / {
        proxy_pass http://127.0.0.1:8000;  # Gunicorn's default address
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • simpan fail
  • buat Pautan Simbolik untuk mendayakan Konfigurasi Nginx, jalankan arahan ini
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled

# change "myapp" to nginx config file name used above
  • Itu sahaja. ## Ujian:
  • Pertama semak fail konfigurasi Nginx untuk sebarang ralat sintaks.
sudo nginx -t
  • Jika anda tidak mempunyai sebarang ralat, mulakan semula Nginx menggunakan arahan ini
sudo systemctl restart nginx

Menyediakan Firewall untuk Nginx

  • Buka terminal baharu dan pasang pakej ini
sudo apt install ufw
  • Sekarang benarkan Nginx melalui Firewall
sudo ufw allow 'Nginx Full'

Menggunakan Arahan -

  • Mulakan Nginx dengan membuka terminal baharu
sudo systemctl start nginx
  • Sekarang untuk memulakan projek lengkap buka terminal dan pergi ke virtualenv yang dibuat dan aktifkan
gunicorn myapp.wsgi:application -c ../gunicorn_conf.py

# in above code "myapp" is a Django project name
# last gunicorn_conf.py is a gunicorn configuration file name
  • Kini projek lengkap bermula.
  • Kini anda boleh membuka projek django anda dengan alamat IP anda.
  • Navigasi ke penyemak imbas dan cari dengan alamat IP anda.
  • Untuk menghentikan Nginx, gunakan arahan ini
sudo systemctl stop nginx

Selamat Pengekodan ? - Menjadi Malas

Hubungi DM - Twitter(X)
Hubungi Mail - sanya.san@myyahoo.com

Atas ialah kandungan terperinci Membina Aplikasi Django Boleh Skala dengan Gunicorn dan Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Penghias Python: Kod PermudahArtikel seterusnya:Penghias Python: Kod Permudah