server { listen 8081; root /usr/share/nginx/html; index index.html; location = /healthz { access_log off; return 200 "ok\n"; add_header Content-Type text/plain; } location = /config.js { expires -1; add_header Cache-Control "no-store, no-cache, must-revalidate"; try_files $uri =404; } location ~* \.(js|css|png|svg|ico|woff2|woff|ttf)$ { expires 1y; add_header Cache-Control "public, immutable"; try_files $uri =404; } # --- ТГУ: маршрутизация на бэкенды (зеркало server.proxy из vite.config.ts). # СЕМАНТИКА (важно повторить точно, иначе бэкенды получат неверный путь): # - префиксы pcp-* СРЕЗАЮТСЯ: trailing-slash в proxy_pass отбрасывает префикс # location (как rewrite в vite). Пример: /api/pcp-tgu/api/plans → бэкенд /api/plans. # - /api/stations путь СОХРАНЯЕТ (в vite без rewrite): proxy_pass без URI-части. # - общий /api/ — catch-all (tgu-planning, current-plans, auth) на ui-service/gateway. # Порядок важен: специфичные префиксы идут РАНЬШЕ общего /api/. # Цели (UPSTREAM_*) — заглушки: подставьте реальные адреса кластера ЛИБО перенесите # маршрутизацию на gateway/ingress. Порты dev (vite) даны как ориентир в комментариях. # Раскомментируйте после подстановки реальных upstream (нерезолвимый хост ломает старт nginx). # Заголовки proxy_set_header в каждом блоке — те же, что в активном /api/ ниже. # # location /api/pcp-request/ { # dev :7005 # proxy_pass http://UPSTREAM_REQUEST/; # 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; # } # location /api/pcp-ballistics/ { # dev :7003 # proxy_pass http://UPSTREAM_BALLISTICS/; # 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; # } # location /api/pcp-mission/ { # dev :7010 # proxy_pass http://UPSTREAM_MISSION/; # 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; # } # location /api/pcp-tgu/ { # dev :7011 # proxy_pass http://UPSTREAM_TGU/; # 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; # } # location /api/pcp-complex/ { # dev :7002 # proxy_pass http://UPSTREAM_COMPLEX/; # 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; # } # location /api/stations/ { # dev :7009 — путь СОХРАНЯЕМ (proxy_pass без / и без URI) # proxy_pass http://UPSTREAM_STATIONS; # 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; # } # # Общий catch-all. В деве это ui-service (:7008): /api/tgu-planning, /api/current-plans, /api/auth. location /api/ { proxy_pass http://127.0.0.1:8000/api/; # ЗАГЛУШКА: замените на ui-service/gateway 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; proxy_read_timeout 60s; } location / { try_files $uri $uri/ /index.html; } }