Bagaimana untuk menggunakan Flask atau Botol dengan Nginx?
Tinggalkan pesanan
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.


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






