역방향 프록시 및 로드 밸런싱을 위해 FastAPI와 함께 Nginx를 사용하는 방법
소개:
FastAPI와 Nginx는 매우 인기 있는 두 가지 웹 개발 도구입니다. FastAPI는 고성능 Python 프레임워크이고 Nginx는 강력한 역방향 프록시 서버입니다. 이 두 도구를 함께 사용하면 웹 애플리케이션의 성능과 안정성을 향상시킬 수 있습니다. 이 기사에서는 역방향 프록시 및 로드 밸런싱을 위해 FastAPI와 함께 Nginx를 사용하는 방법을 알아봅니다.
로드 밸런싱은 요청을 여러 서버에 분산하여 시스템 성능과 안정성을 향상시키는 기술입니다. 하나의 서버가 모든 요청을 처리할 수 없는 경우 로드 밸런싱은 요청을 사용 가능한 다른 서버로 분산하여 서버 간의 로드 균형을 조정합니다.
sudo apt update sudo apt install nginx
설치가 완료된 후 Nginx 구성 파일을 수정해야 합니다. 다음 명령을 사용하여 Nginx 구성 파일을 엽니다.
sudo nano /etc/nginx/sites-available/default
구성 파일에 다음 구성을 추가해야 합니다.
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; } }
위 구성에서는 "backend"라는 업스트림 서버 클러스터를 정의했습니다. 클러스터에는 각각 포트 8000과 8001에서 수신 대기하는 두 개의 서버가 있습니다. 그런 다음 포트 80에서 수신 대기하고 "백엔드" 클러스터의 서버로 요청을 전달하는 서버 블록을 정의했습니다. 마지막으로 프록시 요청에 대한 일부 헤더를 설정합니다.
구성 파일을 저장하고 종료한 후 Nginx 서버를 다시 시작합니다.
sudo systemctl restart nginx
pip install fastapi uvicorn
그런 다음 "main.py"라는 파일을 만들고 다음 코드를 추가합니다.
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"}
파일을 저장한 후 다음 명령을 사용하여 FastAPI 애플리케이션을 시작합니다.
uvicorn main:app --reload
이제 FastAPI 애플리케이션은 로컬 포트 8000에서 수신 대기 중입니다.
로드 밸런싱을 테스트하려면 "main.py" 파일을 복사하고 다른 포트에서 FastAPI 애플리케이션을 시작할 수 있습니다. 예를 들어 "main.py"를 "main2.py"로 복사하고 포트 8001에서 애플리케이션을 시작합니다.
그런 다음 다음 명령을 사용하여 두 번째 FastAPI 애플리케이션을 시작합니다.
uvicorn main2:app --port 8001 --reload
이 시점에서 Nginx는 로드 밸런싱을 설정했으며 요청은 두 FastAPI 애플리케이션으로 밸런싱됩니다.
결론:
FastAPI와 Nginx를 결합하면 역방향 프록시 및 로드 밸런싱 기능을 구현하여 웹 애플리케이션의 성능과 안정성을 향상시킬 수 있습니다. Nginx의 역방향 프록시 기능을 사용하면 백엔드 서버의 세부 정보를 숨기고 보안을 제공할 수 있습니다. 로드 밸런싱 기능을 통해 여러 서버에 걸쳐 로드 밸런싱을 수행하여 시스템 성능과 안정성을 향상시킬 수 있습니다. 이 기사가 FastAPI에서 역방향 프록시 및 로드 밸런싱을 위해 Nginx를 사용하는 방법을 배우는 데 도움이 되기를 바랍니다.
위 내용은 역방향 프록시 및 로드 밸런싱을 위해 FastAPI와 함께 Nginx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!