Rumah - Artikel - Butir-butir

Bagaimana untuk menggunakan Flask atau Botol dengan Nginx?

Liam Martinez
Liam Martinez
Liam adalah penyokong media sosial. Dia mempunyai pengikut yang besar dan sering menggalakkan cawan Thermos Nawas, dari cawan kopi keluli tahan karat ke cawan thermos kanak -kanak, kepada penontonnya, menekankan produk berkualiti tinggi jenama.

Hey! Jika anda meminati pembangunan web, anda mungkin pernah mendengar tentang Flask and Bottle. Rangka kerja web Python yang ringan ini sangat berguna untuk membina apl web. Dan apabila ia datang untuk menggunakan mereka, Nginx ialah pelayan web pilihan utama. Sebagai pembekal Flask dan Botol, saya di sini untuk membimbing anda tentang cara menggunakan Flask atau Bottle dengan Nginx.

Mengapa Gabungkan Flask/Botol dengan Nginx?

Mula-mula, mari kita bincangkan tentang sebab anda ingin menggunakan Flask atau Bottle dengan Nginx. Flask dan Bottle sangat bagus untuk membina aplikasi web dengan cepat, tetapi ia tidak direka untuk mengendalikan sejumlah besar permintaan serentak dengan sendirinya. Ia lebih seperti enjin ringkas yang menguatkan fungsi apl web anda.

Nginx, sebaliknya, ialah pelayan web berprestasi tinggi. Ia boleh mengendalikan satu tan sambungan serentak dengan cekap. Dengan menggunakan Nginx di hadapan apl Flask atau Bottle anda, anda boleh memunggah tugas seperti menyediakan fail statik, mengendalikan permintaan HTTP dan pengimbangan beban. Dengan cara ini, apl Flask atau Botol anda boleh memfokuskan pada perkara yang terbaik: memproses logik perniagaan.

Menyediakan Kelalang atau Botol

Sebelum kita menyelami penyepaduan dengan Nginx, mari pastikan aplikasi Flask atau Bottle kami berfungsi dan berjalan.

Stainless Steel Insulated Coffee Pot bestStainless Steel Insulated Coffee Pot

Persediaan Kelalang

Jika anda menggunakan Flask, pertama sekali, pastikan anda telah memasang Python dan Flask. Anda boleh membuat aplikasi Flask mudah seperti ini:

daripada kelalang import Flask app = Flask(__name__) @app.route('/') def hello_world(): kembalikan 'Hello, World!' jika __name__ == '__main__': app.run(host='0.0.0.0', port=5000)

Simpan kod ini dalam fail, katakanapp.py. Kemudian, jalankannya menggunakanaplikasi python.py. Apl Flask anda akan mula dihidupkanhttp://0.0.0.0:5000.

Persediaan Botol

Untuk Botol, prosesnya adalah serupa. Pasang Botol jika anda belum melakukannya. Berikut ialah apl Botol mudah:

dari laluan import botol, jalankan @route('/') def index(): kembalikan 'Hello from Bottle!' run(host='0.0.0.0', port=8080)

Simpan ini sebagaibottle_app.pydan jalankannya denganpython bottle_app.py. Apl Botol anda boleh diakses dihttp://0.0.0.0:8080.

Memasang dan Mengkonfigurasi Nginx

Sekarang, mari mulakan Nginx dan berjalan. Proses pemasangan berbeza-beza bergantung pada sistem pengendalian anda. Di Ubuntu, anda boleh menggunakan arahan berikut:

sudo apt-get kemas kini sudo apt-get install nginx

Selepas pemasangan, mulakan Nginx menggunakansudo systemctl mulakan nginx. Anda boleh menyemak statusnya dengansudo systemctl status nginx.

Mengkonfigurasi Nginx untuk Flask atau Botol

Nginx menggunakan fail konfigurasi untuk menentukan cara ia harus mengendalikan permintaan. Anda perlu membuat fail konfigurasi baharu untuk apl Flask atau Bottle anda.

Buat fail baharu dalam/etc/nginx/sites - available/direktori. Contohnya, jika anda menggunakan Flask, anda boleh mencipta fail bernamaflask_app.conf:

pelayan { dengar 80; nama pelayan_domain_atau_ip anda; lokasi / { proxy_pass http://127.0.0.1:5000; proxy_set_header Hos $host; proxy_set_header X - Nyata - IP $remote_addr; proxy_set_header X - Dimajukan - Untuk $proxy_add_x_forwarded_for; } }

Jika anda menggunakan Botol, tukarproxy_passkepadahttp://127.0.0.1:8080dan simpan fail sebagaibottle_app.conf.

Buat pautan simbolik ketapak - didayakandirektori:

sudo ln -s /etc/nginx/sites - available/flask_app.conf /etc/nginx/sites - enabled/

Atau untuk Botol:

sudo ln -s /etc/nginx/sites - available/bottle_app.conf /etc/nginx/sites - enabled/

Uji konfigurasi Nginx dengansudo nginx -t. Jika tiada ralat, muat semula Nginx menggunakansudo systemctl muat semula nginx.

Melayan Fail Statik

Salah satu perkara hebat tentang Nginx ialah keupayaannya untuk menyampaikan fail statik dengan cekap. Dalam apl Flask atau Botol anda, anda mungkin mempunyai aset statik seperti CSS, JavaScript atau imej.

Dalam fail konfigurasi Nginx anda, tambah fail baharulokasiblok untuk fail statik. Contohnya:

lokasi /statik { alias /path/to/your/static/files; }

Ini memberitahu Nginx untuk menyampaikan fail dari direktori yang ditentukan apabila permintaan bermula dengan/statik.

Pengimbangan Beban

Jika anda mempunyai beberapa contoh apl Flask atau Bottle anda berjalan, anda boleh menggunakan Nginx untuk mengimbangi beban. Begini cara anda boleh mengkonfigurasinya:

upstream flask_apps { pelayan 127.0.0.1:5000; pelayan 127.0.0.1:5001; } pelayan { dengar 80; nama pelayan_domain_atau_ip anda; lokasi / { proxy_pass http://flask_apps; proxy_set_header Hos $host; proxy_set_header X - Nyata - IP $remote_addr; proxy_set_header X - Dimajukan - Untuk $proxy_add_x_forwarded_for; } }

Konfigurasi ini mengedarkan permintaan masuk antara dua kejadian apl Flask anda yang berjalan pada port 5000 dan 5001.

Menggunakan Proksi Songsang

Nginx bertindak sebagai proksi terbalik dalam persediaan ini. Proksi terbalik terletak di hadapan apl Flask atau Botol anda dan memajukan permintaan kepadanya. Ia juga membantu dalam menyembunyikan struktur dalaman aplikasi anda daripada dunia luar.

Theproxy_passarahan dalam konfigurasi Nginx inilah yang menyebabkan ini berlaku. Ia mengambil permintaan HTTP yang masuk dan menghantarnya ke apl Flask atau Bottle yang sesuai yang dijalankan pada mesin tempatan.

Pemantauan dan Penyelesaian Masalah

Setelah anda menyediakan segala-galanya, adalah penting untuk memantau aplikasi Flask/Bottle dan Nginx anda. Anda boleh menggunakan alat sepertiekoruntuk melihat akses Nginx dan log ralat:

sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log

Jika anda menghadapi masalah, log ini boleh memberi anda maklumat berharga tentang perkara yang salah. Sebagai contoh, jika anda melihat502 Gerbang Burukralat, ini mungkin bermakna apl Flask atau Bottle anda tidak berjalan dengan betul.

Tawaran Produk Kami

Sebagai pembekal Flask dan Botol, kami tidak hanya berhenti memberi bimbingan. Kami juga menawarkan produk berkualiti tinggi yang berkaitan dengan ekosistem Kelalang dan Botol. Sebagai contoh, jika anda sedang mencari cara terbaik untuk memastikan kopi anda hangat semasa anda sibuk mengekod, lihat kamiPeriuk Kopi Bertebat Keluli Tahan Karat. Ia sesuai untuk sesi pengekodan yang panjang.

Hubungi Kami untuk Perolehan

Jika anda berminat dengan penyelesaian Flask dan Botol kami, atau jika anda mempunyai sebarang soalan tentang menggunakannya dengan Nginx, kami ingin mendengar daripada anda. Sama ada anda seorang pemula kecil atau perusahaan besar, kami boleh menyediakan sokongan dan produk yang anda perlukan. Hubungi kami untuk memulakan perbincangan perolehan. Kami di sini untuk membantu anda memanfaatkan sepenuhnya projek pembangunan web anda.

Rujukan

  • Dokumentasi Kelalang
  • Dokumentasi Botol
  • Dokumentasi Nginx

Hantar pertanyaan

Catatan Blog Popular