FastAPI на VPS: деплой с Uvicorn, Nginx и systemd
Полный гайд: FastAPI + Uvicorn + Nginx reverse proxy + systemd на Ubuntu VPS. От кода до production за вечер.
FastAPI — быстрый способ поднять API. На VPS деплой занимает один вечер.
Минимальное приложение
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/api/health")
def health():
return {"status": "ok"}
Uvicorn как сервис
pip install fastapi uvicorn gunicorn
# /etc/systemd/system/fastapi.service
[Unit]
Description=FastAPI App
After=network.target
[Service]
User=deploy
WorkingDirectory=/var/www/app
ExecStart=/var/www/app/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl enable fastapi
sudo systemctl start fastapi
Nginx reverse proxy
location /api/ {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
Production советы
- Используйте venv или Docker
- Gunicorn + Uvicorn workers для нагрузки:
gunicorn main:app -k uvicorn.workers.UvicornWorker - Не открывайте порт 8000 наружу — только через Nginx
- Добавьте PostgreSQL для данных
Итог
FastAPI + systemd + Nginx — простой и надёжный стек для API на VPS. Полный гайд по серверу — развернуть сайт на VPS.
VPS для API — StormNet Cloud.
Рекомендуем прочитать
Частые вопросы
Uvicorn или Gunicorn для FastAPI на VPS?
Uvicorn — ASGI-сервер для FastAPI напрямую. Gunicorn с uvicorn workers — для нескольких воркеров и production за Nginx.
Сколько воркеров Uvicorn на VPS с 2 ГБ RAM?
Обычно 2–4 воркера. Следите за RAM: каждый воркер — отдельный процесс Python с моделями в памяти.






