Hướng dẫn config gunicorn và uvicorn để chạy fastapi
Để chạy một ứng dụng FastAPI với Gunicorn và Uvicorn, bạn cần cấu hình Gunicorn để sử dụng UvicornWorker. Đây là cách phổ biến và hiệu quả để chạy ứng dụng FastAPI trong môi trường production.
Mình đầu tiên tạo môi trường ảo :
python -m venv .venv
dưới đây là file requirements.txt
annotated-types==0.7.0
anyio==4.9.0
APScheduler==3.11.0
async-timeout==5.0.1
click==8.2.0
colorama==0.4.6
exceptiongroup==1.3.0
fastapi==0.115.12
h11==0.16.0
httptools==0.6.4
idna==3.10
Jinja2==3.1.6
MarkupSafe==3.0.2
pydantic==2.11.4
pydantic_core==2.33.2
python-dotenv==1.1.0
PyYAML==6.0.2
redis==6.1.0
sniffio==1.3.1
starlette==0.46.2
typing-inspection==0.4.0
typing_extensions==4.13.2
tzdata==2025.2
tzlocal==5.3.1
uvicorn==0.34.2
watchfiles==1.0.5
websockets==15.0.1
Tiếp theo mình cài với lệnh :
pip install -r requirements.txt
mình config như sau

sau khi chọn config sẽ có file gunicorn_conf.py
bind = '0.0.0.0:7125'
user = 'root'
workers = 2
threads = 2
backlog = 512
chdir = '/www/wwwroot/fastapi'
access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"'
loglevel = 'info'
worker_class = 'uvicorn.workers.UvicornWorker'
errorlog = chdir + '/logs/error.log'
accesslog = chdir + '/logs/access.log'
pidfile = chdir + '/logs/fastapi.pid'
nhớ config worker_class = 'uvicorn.workers.UvicornWorker'
Mình nhớ cài các gói như sau : /www/wwwroot/fastapi/0d32bced91aa5c2ee5696fc7995370ae_venv/bin/python3 -m pip freeze > requirements.txt do vps sẽ tạo 1 folder vitural ảo : /0d32bced91aa5c2ee5696fc7995370ae_venv
 
                                    
                 
                 
                 
                