Maison  >  Article  >  développement back-end  >  Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge

Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge

WBOY
WBOYoriginal
2023-08-01 09:44:001975parcourir

Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge

Introduction :
FastAPI et Nginx sont deux outils de développement Web très populaires. FastAPI est un framework Python hautes performances et Nginx est un puissant serveur proxy inverse. L'utilisation conjointe de ces deux outils peut améliorer les performances et la fiabilité de vos applications Web. Dans cet article, nous apprendrons comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge.

  1. Qu'est-ce que le proxy inverse et l'équilibrage de charge ?
    Un proxy inverse est un service réseau utilisé pour transmettre les demandes des clients vers les ressources du réseau interne. Contrairement au proxy direct, le serveur proxy inverse masque les détails du serveur back-end et le client ne peut pas accéder directement au serveur back-end. Le serveur proxy inverse transmet les requêtes des clients au serveur principal selon certaines règles, assurant ainsi la sécurité et l'équilibrage de charge.

L'équilibrage de charge est une technologie qui distribue les requêtes à plusieurs serveurs pour améliorer les performances et la fiabilité du système. Lorsqu'un serveur ne peut pas gérer toutes les requêtes, l'équilibrage de charge distribue les requêtes aux autres serveurs disponibles, équilibrant ainsi la charge entre les serveurs.

  1. Configurer le proxy inverse Nginx et l'équilibrage de charge
    Tout d'abord, nous devons installer et configurer le serveur Nginx. Sur Ubuntu, vous pouvez utiliser la commande suivante pour installer :
sudo apt update
sudo apt install nginx

Une fois l'installation terminée, nous devons modifier le fichier de configuration Nginx. Ouvrez le fichier de configuration Nginx à l'aide de la commande suivante :

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

Dans le fichier de configuration, nous devons ajouter la configuration suivante :

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

Dans la configuration ci-dessus, nous avons défini un cluster de serveurs en amont nommé "backend". Il y a deux serveurs dans le cluster, écoutant respectivement sur les ports 8000 et 8001. Nous avons ensuite défini un bloc serveur qui écoute sur le port 80 et transmet les requêtes aux serveurs du cluster « backend ». Enfin, nous définissons quelques en-têtes pour la demande de proxy.

Après avoir enregistré et quitté le fichier de configuration, redémarrez le serveur Nginx :

sudo systemctl restart nginx
  1. Création d'une application backend à l'aide de FastAPI
    Ensuite, nous créerons une application backend simple à l'aide de FastAPI. Tout d’abord, assurez-vous que FastAPI et uvicorn sont installés. Il peut être installé à l'aide de la commande suivante :
pip install fastapi uvicorn

Ensuite, créez un fichier appelé "main.py" et ajoutez le code suivant :

from fastapi import FastAPI

app = FastAPI()

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

Après avoir enregistré le fichier, lancez l'application FastAPI à l'aide de la commande suivante :

uvicorn main:app --reload

Désormais, notre application FastAPI écoute sur le port local 8000.

  1. Test du proxy inverse et de l'équilibrage de charge
    En accédant à "http://localhost", nous pouvons voir que Nginx transmet la requête à l'application FastAPI et renvoie une réponse "Hello World".

Pour tester l'équilibrage de charge, nous pouvons copier le fichier "main.py" et démarrer l'application FastAPI sur un autre port. Par exemple, copiez "main.py" dans "main2.py" et démarrez l'application sur le port 8001.

Ensuite, utilisez la commande suivante pour démarrer la deuxième application FastAPI :

uvicorn main2:app --port 8001 --reload

À ce stade, Nginx a configuré l'équilibrage de charge et les requêtes seront équilibrées vers les deux applications FastAPI.

Conclusion :
En combinant FastAPI et Nginx, nous pouvons implémenter des fonctions de proxy inverse et d'équilibrage de charge pour améliorer les performances et la fiabilité des applications Web. Grâce à la fonctionnalité de proxy inverse de Nginx, nous pouvons masquer les détails du serveur backend et assurer la sécurité. Grâce à la fonction d'équilibrage de charge, nous pouvons équilibrer la charge sur plusieurs serveurs pour améliorer les performances et la fiabilité du système. J'espère que cet article pourra vous aider à apprendre à utiliser Nginx pour le proxy inverse et l'équilibrage de charge dans FastAPI.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn