diff --git a/deploy/nginx/nginx.conf.template b/deploy/nginx/nginx.conf.template index 21c2f54..81c3395 100644 --- a/deploy/nginx/nginx.conf.template +++ b/deploy/nginx/nginx.conf.template @@ -156,6 +156,20 @@ server { return 403; } + # --- Схема OpenAPI: FastAPI отдаёт её на КОРНЕВОМ пути /openapi.json (не + # под /api/ — маршруты backend объявлены с явным префиксом /api/... в + # декораторах, а не через APIRouter(prefix=...), см. backend/main.py), + # поэтому без этого location запрос попадал бы в SPA-фолбэк ниже + # (`location /` отдаёт index.html фронта вместо схемы — мешало отладке). + location = /openapi.json { + set $backend_upstream http://backend:8000; + proxy_pass $backend_upstream; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + # --- Медиа (аватары): раздача напрямую из volume, в обход backend. --- location /media/ { alias /media/;