FastApi + NGINX
main.py⌗
Простой скрипт которые возвращает hello world
from fastapi import FastAPI
app = FastAPI()
@app.get(“/”)
async def hello():
return {“msg”: “hello world”}
Supervisor⌗
Для “демонизации” api-сервера (нужен uvicorn) использую Supervisor который очень прост в настройке
[fcgi-program:uvicorn-stripe]
socket=unix:///tmp/app.sock
socket_mode=777
command=/<path-to-workdir>/venv/bin/uvicorn --fd 0 main:app
directory=/<path-to-workdir>/
numprocs=1
process_name=uvicorn-stripe-%(process_num)d
stderr_logfile=/var/log/uvicorn-stripe.err.log
stdout_logfile=/var/log/uvicorn-stripe.out.log
autostart=true
autorestart=true
Настройки Nginx⌗
И, завершающий этап - конфигурация web-сервера.
upstream app {
server unix:///tmp/app.sock;
}
server {
listen 80;
server_name <example.com>;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://app;
}
}
Подпишись на мой канал в Телеграм!
Другие записи