Nginx

Cara menggunakan Nginx dengan Flask.

Cara menggunakan Nginx dengan Flask.
Python adalah bahasa pengaturcaraan yang hebat, mudah dipelajari, dan hebat, dan dengan kerangka kerja seperti Django dan Flask, kita dapat menggunakannya untuk membuat aplikasi web yang lengkap. Sebaik sahaja kami membuat aplikasi web menggunakan perpustakaan dan kerangka kerja seperti Flask, kami perlu menghoskannya di pelayan dan memaparkannya kepada umum. Tutorial ini membincangkan cara menghoskan aplikasi web anda pada pelayan yang menjalankan Nginx menggunakan Gunicorn. Sebelum kita memulakan dengan Flask dan Gunicorn, pastikan anda memenuhi syarat berikut:

Menyiapkan Pelayan

Mari kita mulai menetapkan persekitaran pelayan yang akan kita gunakan untuk menghoskan pelayan kita. Tutorial ini menggunakan Pelayan Ubuntu. Mulakan dengan mengemas kini repositori dan memasang Python3 dan Pip.

sudo apt-get kemas kini
sudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y

Seterusnya, kita perlu membuat direktori untuk menyimpan projek tersebut.

sudo mkdir / var / www / aplikasi
cd / var / www / aplikasi

Tukar pemilikan dan kebenaran direktori:

sudo chown -R www-data: www-data / var / www / aplikasi /

Seterusnya, pasang pakej menggunakan apt (termos dan Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Mari kita teruskan untuk memulakan aplikasi termos. Mulakan dengan membuat yang utama.py-memegang aplikasi-dan wsgi.py, yang akan menjalankan aplikasi.

sudo sentuh utama.py wsgi.py

Edit utama.py file dan sediakan aplikasi Flask anda dan semua laluan. Oleh kerana tutorial ini bukan panduan Flask, kami akan menyediakan laluan asas dan mesej hello world.

dari termos import termos
aplikasi = Kelalang (__ nama__)
@aplikasi.laluan ("/")
rumah def ():
kembali "

Nginx & Gunicorn

"

Edit wsgi.py file dan tambahkan kod untuk mengimport aplikasi, dan jalankan seperti:

dari aplikasi import utama
jika __nama__ == "__main__":
aplikasi.jalankan (debug = Benar)

Akhir sekali, uji apakah ia berfungsi dan berfungsi dengan memanggil termos sebagai:

$ flask dijalankan
* Persekitaran: pengeluaran
AMARAN: Ini adalah pelayan pembangunan. Jangan menggunakannya dalam pengeluaran pengeluaran.
Sebagai gantinya, gunakan pelayan WSGI pengeluaran.
* Mod debug: mati
* Berjalan di http: // 127.0.0.1: 5000 / (Tekan CTRL + C untuk berhenti)

Cuba akses aplikasi di http: // localhost: 5000.

Menubuhkan Gunicorn

Setelah aplikasi kita berjaya dijalankan, kita dapat menggunakan Gunicorn untuk menguji aplikasi menggunakan perintah:

$ sudo gunicorn - pekerja 5 wsgi: aplikasi
[2021-03-19 09:19:34 +0000] [14047] [INFO] Bermula gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Mendengarkan di: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Menggunakan pekerja: segerak
[2021-03-19 09:19:34 +0000] [14049] [INFO] Booting pekerja dengan pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Booting pekerja dengan pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Booting pekerja dengan pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Booting pekerja dengan pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Booting pekerja dengan pid: 14053

Perintah di atas menjalankan aplikasi termos menggunakan Gunicorn menggunakan bilangan pekerja yang ditentukan. Kami kemudian memanggil fail wsgi: app, yang merupakan fail dan contoh aplikasi yang akan dijalankan.

Setelah aplikasi berjalan menggunakan Gunicorn, tekan CTRL + C untuk menghentikan pelayan dan menyediakan Nginx.

Gunakan arahan di bawah untuk memasang dan menjalankan Nginx.

sudo apt-get install nginx -y
sudo systemctl mulakan nginx
sudo systemctl aktifkan nginx

Langkah seterusnya adalah mengedit konfigurasi Nginx di direktori yang didayakan laman web dan menambahkan blok pelayan. Pertimbangkan konfigurasi berikut. Tukar aplikasi ke nama projek anda.

sudo nano / etc / nginx / laman web-tersedia / aplikasi.pengesahan
pelayan
dengar 80;
aplikasi pelayan_nama;
access_log / var / log / nginx / aplikasi.akses.log;
error_log / var / log / nginx / perkakas.kesilapan.log;
lokasi /
sertakan proxy_params;
proxy_pass http: // unix: / var / www / aplikasi / aplikasi.stoking;

Teruskan membuat pautan ke direktori yang didayakan laman web untuk mengaktifkan laman web.

sudo ln -s / etc / nginx / laman web-tersedia / aplikasi.conf / etc / nginx / didayakan laman web /

Sekarang mulakan semula perkhidmatan Nginx sebagai:

sudo systemctl mulakan semula nginx

Seterusnya, kita perlu membuat fail unit systemd untuk melayani aplikasi.

sudo nano / etc / systemd / system / aplikasi.perkhidmatan
[Unit]
Penerangan = aplikasi.perkhidmatan - Aplikasi Flask yang dijalankan dengan Gunicorn.
Selepas = rangkaian.sasaran
[Perkhidmatan]
Pengguna = data www
Kumpulan = data www
WorkingDirectory = / var / www / aplikasi /
ExecStart = / usr / bin / gunicorn - pekerja 3 - ikatan unix: / var / www / aplikasi.stoking wsgi: aplikasi
[Pasang]
WantedBy = berbilang pengguna.sasaran

Akhirnya, simpan fail unit, kemudian aktifkan dan muatkan semula daemon.

sudo systemctl mulakan semula aplikasi.perkhidmatan
sudo systemctl daemon-tambah nilai

Sekarang anda boleh mengakses aplikasi menggunakan alamat IP atau alamat yang ditentukan dalam fail konfigurasi nginx. Anda mungkin perlu menambahkannya ke fail hos.

curl http: // aplikasi
HTTP / 1.1 200 OK
Pelayan: Werkzeug / 0.16.1 Python / 3.8.5)
Tarikh: Jumaat, 19 Mac 2021 10:00:39 GMT
Jenis Kandungan: teks / html
Panjang Kandungan: 25
Terakhir Diubahsuai: Jumaat, 19 Mac 2021 09:22:47 GMT

Kesimpulannya

Tutorial ini menerangkan cara menyiapkan aplikasi Python Flask dan memberikannya melalui Nginx menggunakan Gunicorn. Pertimbangkan dokumentasi individu untuk mengetahui lebih lanjut mengenai perkhidmatan yang dibincangkan dalam tutorial ini.

Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...