- Pelayan dengan akses SSH
- Pelayan web Nginx berjalan di pelayan (pemasangan dilindungi)
- Python
- Anda adalah pengguna sudo.
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 kinisudo 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 / aplikasicd / 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-gunicornMari 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.pyEdit 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 termosaplikasi = 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 utamajika __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 -ysudo 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.pengesahanpelayan
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 nginxSeterusnya, 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.perkhidmatansudo 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: // aplikasiHTTP / 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.