feat(gateway): сервис pcp-gateway-service + сворачивание маршрутизации фронта на него
- новый Spring Cloud Gateway (WebFlux): доменные маршруты /api/pcp-<x>/**
со StripPrefix=2, /api/stations без среза пути, catch-all /api/** → ui-service;
опциональная JWT-валидация на edge (gateway.security.jwt-enabled, по умолчанию off)
- config-repo: pcp-gateway-service.yaml (маршруты) + порт/адрес gateway в реестрах
application-{local,docker-local,dev}
- build: репозитории переведены на mavenCentral (nstart-proxy закомментирован),
включены mavenLocal/gradlePluginPortal; settings: include модуля
- pcp-tgu-ui-service: vite-proxy и nginx.conf свёрнуты на единый /api → gateway
(вместо набора per-service правил)
- deploy: сервис gateway в docker-compose; helm-чарт pcp-gateway-service
- CI: .gitlab/ci/pcp-gateway-service.yml + проводка в .gitlab-ci.yml
This commit is contained in:
@@ -21,64 +21,14 @@ server {
|
||||
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.
|
||||
# --- ТГУ: вся маршрутизация /api/* уходит на gateway (Spring Cloud Gateway).
|
||||
# Gateway сам срезает префиксы pcp-* (StripPrefix) и выбирает бэкенд —
|
||||
# см. config-repo/pcp-gateway-service.yaml. Здесь прозрачный reverse-proxy:
|
||||
# proxy_pass БЕЗ URI-части → путь /api/... передаётся gateway без изменений
|
||||
# (он разбирает его сам). Это заменяет прежний набор per-service location'ов.
|
||||
# Адрес gateway в кластере — pcp-gateway-service:8080 (dev/master-профиль).
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:8000/api/; # ЗАГЛУШКА: замените на ui-service/gateway
|
||||
proxy_pass http://pcp-gateway-service:8080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
|
||||
Reference in New Issue
Block a user