Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban

Cara menggunakan Nginx dengan FastAPI untuk proksi terbalik dan pengimbangan beban

WBOY
WBOYasal
2023-08-01 09:44:001975semak imbas

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

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

sudo nano /etc/nginx/sites-available/default

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;
    }
}

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
  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

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

from fastapi import FastAPI

app = FastAPI()

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

Selepas menyimpan fail, lancarkan aplikasi FastAPI menggunakan arahan berikut:

uvicorn main:app --reload

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

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:
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