Rumah pembangunan bahagian belakang Tutorial Python Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban

Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban

Aug 01, 2023 am 09:44 AM
nginx pengimbangan beban proksi terbalik fastapi

Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban

Pengenalan:
FastAPI dan Nginx ialah dua alatan pembangunan web yang sangat popular. FastAPI ialah rangka kerja Python berprestasi tinggi, dan Nginx ialah pelayan proksi terbalik yang berkuasa. Menggunakan kedua-dua alatan ini bersama-sama boleh meningkatkan prestasi dan kebolehpercayaan aplikasi web anda. Dalam artikel ini, kita akan belajar cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban.

  1. Apakah proksi terbalik dan pengimbangan beban?
    Proksi terbalik ialah perkhidmatan rangkaian yang digunakan untuk memajukan permintaan pelanggan kepada sumber rangkaian dalaman. Tidak seperti proksi hadapan, pelayan proksi terbalik menyembunyikan butiran pelayan bahagian belakang dan pelanggan tidak boleh mengakses pelayan bahagian belakang secara langsung. Pelayan proksi terbalik memajukan permintaan pelanggan ke pelayan bahagian belakang mengikut peraturan tertentu, dengan itu menyediakan keselamatan dan pengimbangan beban.

Pengimbangan beban ialah teknologi yang mengedarkan permintaan kepada berbilang pelayan untuk meningkatkan prestasi dan kebolehpercayaan sistem. Apabila satu pelayan tidak dapat mengendalikan semua permintaan, pengimbangan beban mengedarkan permintaan kepada pelayan lain yang tersedia, dengan itu mengimbangi beban antara pelayan.

  1. Konfigurasikan proksi terbalik Nginx dan pengimbangan beban
    Pertama, kita perlu memasang dan mengkonfigurasi pelayan Nginx. Di Ubuntu, anda boleh menggunakan arahan berikut untuk memasang:
sudo apt update
sudo apt install nginx
Salin selepas log masuk

Selepas pemasangan selesai, kami perlu mengubah suai fail konfigurasi Nginx. Buka fail konfigurasi Nginx menggunakan arahan berikut:

sudo nano /etc/nginx/sites-available/default
Salin selepas log masuk

Dalam fail konfigurasi, kita perlu menambah konfigurasi berikut:

upstream backend {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
}

server {
    listen 80;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
Salin selepas log masuk

Dalam konfigurasi di atas, kami telah menentukan gugusan pelayan huluan bernama "backend". Terdapat dua pelayan dalam kluster, masing-masing mendengar pada port 8000 dan 8001. Kami kemudiannya menentukan blok pelayan yang mendengar pada port 80 dan memajukan permintaan kepada pelayan dalam kelompok "belakang". Akhir sekali, kami menetapkan beberapa pengepala untuk permintaan proksi.

Selepas menyimpan dan keluar dari fail konfigurasi, mulakan semula pelayan Nginx:

sudo systemctl restart nginx
Salin selepas log masuk
  1. Membuat aplikasi bahagian belakang menggunakan FastAPI
    Seterusnya, kami akan mencipta aplikasi bahagian belakang yang mudah menggunakan FastAPI. Pertama, pastikan FastAPI dan uvicorn dipasang. Ia boleh dipasang menggunakan arahan berikut:
pip install fastapi uvicorn
Salin selepas log masuk

Kemudian, buat fail bernama "main.py" dan tambah kod berikut:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}
Salin selepas log masuk

Selepas menyimpan fail, lancarkan aplikasi FastAPI menggunakan arahan berikut:

uvicorn main:app --reload
Salin selepas log masuk

Sekarang, aplikasi FastAPI kami sedang mendengar pada port tempatan 8000.

  1. Menguji proksi terbalik dan mengimbangi beban
    Dengan mengakses "http://localhost", kita dapat melihat bahawa Nginx memajukan permintaan ke aplikasi FastAPI dan mengembalikan respons "Hello World".

Untuk menguji pengimbangan beban, kami boleh menyalin fail "main.py" dan memulakan aplikasi FastAPI pada port lain. Sebagai contoh, salin "main.py" ke "main2.py" dan mulakan aplikasi pada port 8001.

Kemudian, gunakan arahan berikut untuk memulakan aplikasi FastAPI kedua:

uvicorn main2:app --port 8001 --reload
Salin selepas log masuk

Pada ketika ini, Nginx telah menyediakan pengimbangan beban dan permintaan akan diseimbangkan kepada dua aplikasi FastAPI.

Kesimpulan:
Dengan menggabungkan FastAPI dan Nginx, kami boleh melaksanakan fungsi proksi terbalik dan pengimbangan beban untuk meningkatkan prestasi dan kebolehpercayaan aplikasi web. Menggunakan ciri proksi terbalik Nginx, kami boleh menyembunyikan butiran pelayan bahagian belakang dan menyediakan keselamatan. Melalui fungsi pengimbangan beban, kami boleh mengimbangi beban merentas berbilang pelayan untuk meningkatkan prestasi dan kebolehpercayaan sistem. Saya harap artikel ini dapat membantu anda mempelajari cara menggunakan Nginx untuk proksi terbalik dan pengimbangan beban dalam FastAPI.

Atas ialah kandungan terperinci Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Aplikasi strategi pengimbangan beban dalam pengoptimuman prestasi rangka kerja Java Aplikasi strategi pengimbangan beban dalam pengoptimuman prestasi rangka kerja Java May 31, 2024 pm 08:02 PM

Strategi pengimbangan beban adalah penting dalam rangka kerja Java untuk pengedaran permintaan yang cekap. Bergantung pada situasi konkurensi, strategi berbeza mempunyai prestasi berbeza: Kaedah pengundian: prestasi stabil di bawah konkurensi rendah. Kaedah undian berwajaran: Prestasi adalah serupa dengan kaedah pengundian di bawah konkurensi rendah. Bilangan kaedah sambungan paling sedikit: prestasi terbaik di bawah keselarasan tinggi. Kaedah rawak: mudah tetapi prestasi lemah. Hashing Konsisten: Mengimbangi beban pelayan. Digabungkan dengan kes praktikal, artikel ini menerangkan cara memilih strategi yang sesuai berdasarkan data prestasi untuk meningkatkan prestasi aplikasi dengan ketara.

Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP May 03, 2024 am 08:54 AM

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.

Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Cara menggunakan Fail2Ban untuk melindungi pelayan anda daripada serangan kekerasan Apr 27, 2024 am 08:34 AM

Tugas penting untuk pentadbir Linux adalah untuk melindungi pelayan daripada serangan atau akses haram. Secara lalai, sistem Linux disertakan dengan firewall yang dikonfigurasikan dengan baik, seperti iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), dsb., yang boleh menghalang pelbagai serangan. Mana-mana mesin yang disambungkan ke Internet adalah sasaran yang berpotensi untuk serangan berniat jahat. Terdapat alat yang dipanggil Fail2Ban yang boleh digunakan untuk mengurangkan akses haram pada pelayan. Apakah Fail2Ban? Fail2Ban[1] ialah perisian pencegahan pencerobohan yang melindungi pelayan daripada serangan kekerasan. Ia ditulis dalam bahasa pengaturcaraan Python

Mari bersama saya untuk mempelajari Linux dan memasang Nginx Mari bersama saya untuk mempelajari Linux dan memasang Nginx Apr 28, 2024 pm 03:10 PM

Hari ini, saya akan membawa anda memasang Nginx dalam persekitaran Linux Sistem Linux yang digunakan di sini ialah CentOS7.2 Sediakan alat pemasangan 1. Muat turun Nginx dari laman web rasmi Nginx. Versi yang digunakan di sini ialah: 1.13.6.2 Muat naik Nginx yang dimuat turun ke Linux Di sini, direktori /opt/nginx digunakan sebagai contoh. Jalankan "tar-zxvfnginx-1.13.6.tar.gz" untuk nyahmampat. 3. Tukar ke direktori /opt/nginx/nginx-1.13.6 dan jalankan ./configure untuk konfigurasi awal. Jika gesaan berikut muncul, ini bermakna PCRE tidak dipasang pada mesin, dan Nginx perlu melakukannya

Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Beberapa perkara yang perlu diberi perhatian apabila membina ketersediaan tinggi dengan keepalived+nginx Apr 23, 2024 pm 05:50 PM

Selepas yum memasang keepalived, konfigurasikan fail konfigurasi keepalived Ambil perhatian bahawa dalam fail konfigurasi keepalived bagi induk dan sandaran, nama kad rangkaian ialah nama kad rangkaian VIP yang tersedia Biasanya dalam ketersediaan tinggi. Persekitaran LAN Terdapat lebih banyak lagi, jadi VIP ini adalah IP intranet dalam segmen rangkaian yang sama dengan kedua-dua mesin. Jika digunakan dalam persekitaran rangkaian luaran, tidak kira sama ada ia berada pada segmen rangkaian yang sama, asalkan pelanggan boleh mengaksesnya. Hentikan perkhidmatan nginx dan mulakan perkhidmatan keepalived Anda akan melihat bahawa keepalived menarik perkhidmatan nginx untuk dimulakan.

Akses fail tapak WordPress adalah terhad: Mengapa fail .txt saya tidak boleh diakses melalui nama domain? Akses fail tapak WordPress adalah terhad: Mengapa fail .txt saya tidak boleh diakses melalui nama domain? Apr 01, 2025 pm 03:00 PM

Akses fail tapak WordPress adalah terhad: Menyelesaikan masalah sebab mengapa fail .txt tidak dapat diakses baru -baru ini. Sebilangan pengguna menghadapi masalah ketika mengkonfigurasi nama domain perniagaan program mini: � ...

Cara melaksanakan amalan terbaik keselamatan PHP Cara melaksanakan amalan terbaik keselamatan PHP May 05, 2024 am 10:51 AM

Cara Melaksanakan Amalan Terbaik Keselamatan PHP PHP ialah salah satu bahasa pengaturcaraan web bahagian belakang paling popular yang digunakan untuk mencipta laman web dinamik dan interaktif. Walau bagaimanapun, kod PHP boleh terdedah kepada pelbagai kelemahan keselamatan. Melaksanakan amalan terbaik keselamatan adalah penting untuk melindungi aplikasi web anda daripada ancaman ini. Pengesahan input Pengesahan input ialah langkah pertama yang kritikal dalam mengesahkan input pengguna dan mencegah input berniat jahat seperti suntikan SQL. PHP menyediakan pelbagai fungsi pengesahan input, seperti filter_var() dan preg_match(). Contoh: $username=filter_var($_POST['username'],FILTER_SANIT

See all articles