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