Mengadakan Django dengan Nginx dan Gunicorn di Linux

Mengadakan Django dengan Nginx dan Gunicorn di Linux

Pengenalan

Mengadakan aplikasi web Django agak mudah, walaupun ia boleh mendapatkan lebih kompleks daripada aplikasi php standard. Terdapat beberapa cara untuk mengendalikan membuat antara muka Django dengan pelayan web. Gunicorn mudah salah satu yang paling mudah.

Gunicorn (pendek untuk unicorn hijau) bertindak seperti dalam pelayan perantara antara pelayan web anda, nginx dalam kes ini, dan Django sendiri. Ia mengendalikan melayani aplikasi itu sendiri sementara nginx mengambil kandungan statik.

Gunicorn

Pemasangan

Memasang Gunicorn sangat mudah dengan PIP. Sekiranya anda sudah menyediakan projek Django anda menggunakan Virtualenv, anda mempunyai Pip dan harus biasa dengan cara ia berfungsi. Oleh itu, pasang Gunicorn di Virtualenv anda.

$ pip memasang gunicorn

Konfigurasi

Salah satu perkara yang menjadikan Gunicorn pilihan yang menarik adalah kesederhanaan konfigurasinya. Cara terbaik untuk mengendalikan konfigurasi adalah untuk membuat a Gunicorn folder dalam direktori root projek Django anda. Di dalam folder itu, buat fail konfigurasi.

Untuk panduan ini, ia akan dipanggil Gunicorn-Conf.py. Dalam fail itu, buat sesuatu yang serupa dengan konfigurasi di bawah.

Import Multiprocessing Bind = 'Unix: /// TMP/Gunicorn1.pekerja kaus kaki = multiprocessing.cpu_count () * 2 + 1 Reload = true daemon = true 

Dalam kes konfigurasi di atas, Gunicorn akan membuat soket Unix di /TMP/GUNICORN1.kaus kaki. Ia juga akan memutar beberapa proses pekerja yang bersamaan dengan dua kali ganda bilangan teras CPU ditambah satu. Ia juga akan dimuat semula secara automatik dan dijalankan sebagai proses yang daemon.

Berjalan

Perintah untuk menjalankan Gunicorn agak lama, tetapi ia mempunyai pilihan konfigurasi tambahan yang dinyatakan di dalamnya. Bahagian yang paling penting ialah menunjuk Gunicorn ke projek anda .wsgi fail.

GUNICORN -C GUNICORN/GUNICORN -CONF.PY -D -Gunicorn/ralat Gunicorn -Logfile.log projek anda.wsgi

Perintah di atas harus dijalankan dari akar projek anda. Ia memberitahu Gunicorn untuk menggunakan konfigurasi yang anda buat dengan -c bendera. -D sekali lagi menyatakan bahawa ia harus diselaraskan. Bahagian terakhir menentukan lokasi kesilapan Gunicorn lama di Gunicorn folder yang anda buat. Perintah itu berakhir dengan memberitahu Gunicorn lokasi anda .wsgifail.

Nginx

Sekarang Gunicorn dikonfigurasi dan berjalan, anda boleh menyediakan Nginx untuk menyambung dengannya dan menyampaikan fail statik anda. Panduan ini akan mengandaikan bahawa anda mempunyai nginx sudah dikonfigurasikan dan anda menggunakan berasingan pelayan Blok untuk laman web yang dihoskan melaluinya. Ia juga akan memasukkan beberapa maklumat SSL.

Sekiranya anda ingin belajar bagaimana untuk mendapatkan sijil SSL percuma untuk laman web anda, lihatlah panduan LetSeNcrypt kami.

# Sediakan sambungan ke Gunicorn Hulu YourProject-Gunicorn Server Unix:/TMP/Gunicorn1.Sock Fail_Timeout = 0;  # Redirect trafik yang tidak disulitkan ke pelayan tapak yang disulitkan Dengar 80; server_name yourwebsite.com; kembali 301 https: // yourwebsite.com $ request_uri;  # Pelayan blok pelayan utama  # Tetapkan port untuk mendengar dan tentukan domain untuk mendengar untuk mendengar 443 lalai ssl; client_max_body_size 4g; server_name yourwebsite.com; # Tentukan lokasi log Access_Log/var/log/nginx/yourwebsite.akses_log utama; error_log/var/log/nginx/yourwebsite.info error_log; # Titik nginx ke SSL Certifs SSL anda; ssl_certificate/etc/letsencrypt/live/yourwebsite.com/fullchain.PEM; ssl_certificate_key/etc/letsencrypt/live/yourwebsite.com/privkey.PEM; # Tetapkan root direktori root anda/var/www/yourvirtualenv/yourproject; # Point nginx pada fail statik anda lokasi / statik /  # autoindex fail untuk membuatnya boleh dilayari jika anda mahu autoindex pada; # Lokasi fail alias/var/www/yourvirtualenv/yourproject/static/; # Sediakan caching untuk fail statik anda tamat 1m; akses_log off; add_header Cache-Control "public"; proxy_ignore_headers "set-cookie";  # Point nginx pada fail muat naik lokasi / media / autoindex jika anda mahu autoindex pada; # Lokasi fail muat naik alias/var/www/yourvirtualenv/yourproject/media/; # Sediakan sakit untuk fail yang dimuat naik tamat 1m; akses_log off; add_header Cache-Control "public"; proxy_ignore_headers "set-cookie";  lokasi /  # Cuba fail statik anda terlebih dahulu, kemudian redirect ke Gunicorn try_files $ uri @proxy_to_app; # Lulus permintaan ke lokasi gunicorn @proxy_to_app proxy_set_header x-forward-for $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; proxy_redirect off; proxy_pass http: // njc-gunicorn;  # Caching untuk lokasi HTML, XML, dan JSON ~* \.(html?| xml | json) $ tamat 1h;  # Caching untuk semua lokasi aset statik lain ~* \.(jpg | jpeg | png | gif | ico | css | js | ttf | woff2) $ tamat 1m; akses_log off; add_header Cache-Control "public"; proxy_ignore_headers "set-cookie";  

Okay, jadi itu sedikit, dan boleh ada banyak lagi. Perkara penting yang perlu diperhatikan ialah hulu menyekat yang menunjukkan Gunicorn dan Lokasi Blok yang melepasi lalu lintas ke Gunicorn. Sebilangan besar selebihnya cukup pilihan, tetapi anda harus melakukannya dalam beberapa bentuk. Komen dalam konfigurasi harus membantu anda dengan spesifik.

Sebaik sahaja fail itu disimpan, anda boleh memulakan semula Nginx untuk perubahan yang akan berkuatkuasa.

# Systemctl mulakan semula nginx

Setelah Nginx kembali dalam talian, laman web anda harus diakses melalui domain anda.

Pemikiran penutupan

Terdapat banyak lagi yang boleh dilakukan dengan nginx, jika anda ingin menggali jauh. Walau bagaimanapun, konfigurasi yang disediakan adalah titik permulaan yang baik dan merupakan sesuatu yang sebenarnya boleh anda gunakan. Sekiranya anda terbiasa dengan Apache dan aplikasi PHP yang kembung, kelajuan konfigurasi pelayan seperti ini harus datang sebagai kejutan yang menyenangkan.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Menyiapkan Alamat IP Statik di Manjaro Linux
  • Linux Apache Tidak Melaksanakan Fail PHP: Penyelesaian
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Ubuntu 20.04: WordPress dengan pemasangan nginx
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara memasang PHP di Ubuntu Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Pemasangan WordPress OpenLiteSpeed
  • Cara membuat timbunan lampu berasaskan Docker menggunakan Docker pada ..