Hosting Django dengan Nginx dan Gunicorn di Linux
- 4927
- 1180
- Dwayne Hackett
Perkenalan
Hosting Aplikasi Web Django cukup sederhana, meskipun bisa menjadi lebih kompleks daripada aplikasi PHP standar. Ada beberapa cara untuk menangani membuat antarmuka Django dengan server web. Gunicorn dengan mudah adalah salah satu yang paling sederhana.
Gunicorn (pendek untuk unicorn hijau) bertindak seperti di server perantara antara server web Anda, nginx dalam kasus ini, dan django itu sendiri. Itu menangani melayani aplikasi itu sendiri sementara nginx mengambil konten statis.
Gunicorn
Instalasi
Memasang Gunicorn sangat mudah dengan Pip. Jika Anda sudah mengatur proyek Django menggunakan VirtualEnv, Anda memiliki PIP dan harus terbiasa dengan cara kerjanya. Jadi, instal Gunicorn di VirtualEnv Anda.
$ Pip Instal Gunicorn
Konfigurasi
Salah satu hal yang menjadikan Gunicorn pilihan yang menarik adalah kesederhanaan konfigurasinya. Cara terbaik untuk menangani konfigurasi adalah dengan membuat a Gunicorn
Folder di Direktori Root Proyek Django Anda. Di dalam folder itu, buat file konfigurasi.
Untuk panduan ini, itu akan dipanggil Gunicorn-Conf.py
. Di file itu, buat sesuatu yang mirip dengan konfigurasi di bawah ini.
Impor multiprocessing bind = 'unix: /// tmp/gunicorn1.pekerja kaus kaki = multiproses.cpu_count () * 2 + 1 Reload = true daemon = true
Dalam hal konfigurasi di atas, Gunicorn akan membuat soket unix di /tmp/gunicorn1.kaus kaki
. Itu juga akan memutar sejumlah proses pekerja yang setara dengan dua kali lipat jumlah core cpu plus satu. Ini juga akan secara otomatis memuat ulang dan dijalankan sebagai proses yang ditendapkan.
Berlari
Perintah untuk menjalankan Gunicorn agak panjang, tetapi memiliki opsi konfigurasi tambahan yang ditentukan di dalamnya. Bagian terpenting adalah menunjuk Gunicorn ke proyek Anda .WSGI
mengajukan.
Gunicorn -C Gunicorn/Gunicorn -Conf.py -d --ror -logfile gunicorn/error.Catat proyek Anda.WSGI
Perintah di atas harus dijalankan dari akar proyek Anda. Ini memberitahu Gunicorn untuk menggunakan konfigurasi yang Anda buat dengan -C
bendera. -D
Sekali lagi menetapkan bahwa itu harus diteliti. Bagian terakhir menentukan lokasi kesalahan Gunicorn lama di Gunicorn
Folder yang Anda buat. Perintah berakhir dengan memberi tahu Gunicorn lokasi Anda .WSGI
mengajukan.
Nginx
Sekarang Gunicorn dikonfigurasi dan dijalankan, Anda dapat mengatur Nginx untuk menghubungkannya dan menyajikan file statis Anda. Panduan ini akan menganggap bahwa Anda sudah dikonfigurasi Nginx dan bahwa Anda menggunakan terpisah server
blok untuk situs yang diselenggarakan melalui itu. Ini juga akan menyertakan beberapa info SSL.
Jika Anda ingin belajar cara mendapatkan sertifikat SSL gratis untuk situs Anda, lihat Panduan LetSEncrypt kami.
# Siapkan Koneksi ke Gunicorn Hulu Yourproject-Gunicorn Server Unix:/Tmp/Gunicorn1.Sock fail_timeout = 0; # Mengarahkan lalu lintas yang tidak terenkripsi ke server situs terenkripsi Listen 80; Server_name Anda.com; Return 301 https: //.com $ request_uri; # Server server server utama # Setel port untuk mendengarkan dan menentukan domain untuk mendengarkan untuk mendengarkan 443 SSL default; client_max_body_size 4g; Server_name Anda.com; # Tentukan lokasi log access_log/var/log/nginx/yourwebsite.Access_log Main; ERROR_LOG/VAR/LOG/NGINX/YourWebsite.Info aligasi_log; # Point nginx ke SSL Certs SSL Anda di; ssl_certificate/etc/letsencrypt/live/yourWebsite Anda.com/fullchain.PEM; ssl_certificate_key/etc/letsencrypt/live/yourWebsite Anda.com/privkey.PEM; # Atur root root root Anda/var/www/yourvirtualenv/yourproject; # Point nginx di lokasi file statis Anda / statis / # autoIndex file untuk membuatnya dapat dijelajahi jika Anda ingin AutoIndex aktif; # Lokasi file Anda alias/var/www/yourvirtualenv/yourproject/static/; # Mengatur caching untuk file statis Anda berakhir 1m; Access_log off; add_header cache-control "public"; proxy_ignore_headers "set-cookie"; # Point nginx di lokasi file Anda yang diunggah / media / autoIndex jika Anda ingin AutoIndex aktif; # Lokasi file Anda yang diunggah alias/var/www/yourvirtualenv/yourproject/media/; # Mengatur ACHING untuk file yang diunggah Anda kedaluwarsa 1m; Access_log off; add_header cache-control "public"; proxy_ignore_headers "set-cookie"; Lokasi / # Coba file statis Anda terlebih dahulu, lalu redirect ke Gunicorn try_files $ uri @proxy_to_app; # Lewati Permintaan ke Gunicorn Location @proxy_to_app proxy_set_header X-forwarded-for $ proxy_add_x_forwarded_for; proxy_set_header host $ http_host; proxy_redirect off; proxy_pass http: // njc-gunicorn; # Caching untuk html, xml, dan lokasi json ~* \.(html?| xml | json) $ kedaluwarsa 1h; # Caching untuk semua lokasi aset statis lainnya ~* \.(jpg | jpeg | png | gif | ico | css | js | ttf | woff2) $ kedaluwarsa 1m; Access_log off; add_header cache-control "public"; proxy_ignore_headers "set-cookie";
Oke, jadi itu sedikit banyak, dan mungkin ada lebih banyak lagi. Poin penting yang perlu diperhatikan adalah ke hulu
memblokir itu menunjuk ke Gunicorn dan Lokasi
memblokir lalu lintas ke Gunicorn. Sebagian besar sisanya cukup opsional, tetapi Anda harus melakukannya dalam beberapa bentuk. Komentar dalam konfigurasi akan membantu Anda dengan spesifik.
Setelah file itu disimpan, Anda dapat memulai kembali Nginx agar perubahan berlaku.
# Systemctl restart nginx
Setelah nginx kembali online, situs Anda harus diakses melalui domain Anda.
Menutup pikiran
Ada banyak lagi yang bisa dilakukan dengan nginx, jika Anda ingin menggali lebih dalam. Konfigurasi yang disediakan adalah titik awal yang baik dan merupakan sesuatu yang benar -benar dapat Anda gunakan. Jika Anda terbiasa Apache dan kembung aplikasi PHP, kecepatan konfigurasi server seperti ini harus datang sebagai kejutan yang menyenangkan.
Tutorial Linux Terkait:
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Cara mengatur alamat IP statis di Manjaro Linux
- Linux Apache Tidak Melaksanakan File PHP: Solusi
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Ubuntu 20.04: WordPress dengan instalasi nginx
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Cara menginstal php di ubuntu linux
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- Instalasi OpenLitespeed WordPress
- Cara membuat tumpukan lampu berbasis Docker menggunakan Docker di…