diff --git a/spring-angular-ui/nginx.conf b/spring-angular-ui/nginx.conf index 4097643..c91bbd0 100644 --- a/spring-angular-ui/nginx.conf +++ b/spring-angular-ui/nginx.conf @@ -1,3 +1,9 @@ +# Схема исходного запроса: за Caddy (https) — из его X-Forwarded-Proto, иначе своя +map $http_x_forwarded_proto $forwarded_proto { + default $http_x_forwarded_proto; + "" $scheme; +} + server { listen 80; server_name _; @@ -12,7 +18,7 @@ server { 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_set_header X-Forwarded-Proto $forwarded_proto; } # Маршруты Angular (/admin, /tutorials/1 ...) отдаём через index.html diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 41b0aba..f794037 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -24,4 +24,10 @@ app: # Совпадает со сроком жизни cookie (24 ч), иначе UI считает пользователя вошедшим, а API отвечает 401 jwtExpirationMs: 86400000 jwtCookieName: demo-decoupled - origin: http://localhost:4200 \ No newline at end of file + # Разрешённый origin для запросов с другого домена (dev-сервер Angular). UI через nginx фронта CORS не касается + origin: ${APP_ORIGIN:http://localhost:4200} + +# За обратным прокси (nginx фронта, Caddy Jambotron) приложение видит http. Без X-Forwarded-Proto/Host +# запросы со своего https-домена выглядят кросс-доменными, и CORS отвечает на них 403 +server: + forward-headers-strategy: framework \ No newline at end of file