diff --git a/apps/frontend/components/id/auth-provider.tsx b/apps/frontend/components/id/auth-provider.tsx index 86259f6..796f3a4 100644 --- a/apps/frontend/components/id/auth-provider.tsx +++ b/apps/frontend/components/id/auth-provider.tsx @@ -143,7 +143,6 @@ export function AuthProvider({ children }: { children: React.ReactNode }) { const onReady = () => setIsApiReady(true); const onNotReady = () => { setIsApiReady(false); - setIsSessionReady(false); }; const unsubReady = subscribeApiReady(onReady); const unsubNotReady = subscribeApiNotReady(onNotReady); diff --git a/install.sh b/install.sh index ef27b9e..a9b4a45 100644 --- a/install.sh +++ b/install.sh @@ -2138,29 +2138,48 @@ nginx_proxy_headers_api=" proxy_set_header Host \$host; # «variable proxy_pass» и требует resolver (502: no resolver defined to resolve lendry-id-frontend). # Без URI в proxy_pass полный путь клиента передаётся upstream как есть. render_proxy_root() { - local key="$1" up + local key="$1" up var up="$(nginx_upstream "$key")" + if [[ "$NGINX_MODE" == "docker" ]]; then + var="idp_up_${key//-/_}" + printf ' set $%s %s;\n proxy_pass $%s;' "$var" "$up" "$var" + return 0 + fi printf ' proxy_pass %s;' "$up" } # proxy_pass с заменой пути на фиксированный ($2, например /ws или /oauth/). render_proxy_rewrite() { - local key="$1" target="$2" up + local key="$1" target="$2" up var up="$(nginx_upstream "$key")" + if [[ "$NGINX_MODE" == "docker" ]]; then + var="idp_up_${key//-/_}" + printf ' set $%s %s;\n rewrite ^.*$ %s break;\n proxy_pass $%s;' "$var" "$up" "$target" "$var" + return 0 + fi printf ' rewrite ^.*$ %s break;\n proxy_pass %s;' "$target" "$up" } -# proxy_pass для /idp-api/ — trailing slash снимает префикс без rewrite (надёжнее под HTTP/2). +# proxy_pass для /idp-api/ — в Docker через variable proxy_pass, чтобы nginx +# не держал stale IP api-gateway после recreate и резолвил через 127.0.0.11. render_proxy_idp_api() { local up up="$(nginx_upstream api)" + if [[ "$NGINX_MODE" == "docker" ]]; then + printf ' set $idp_up_api %s;\n rewrite ^/idp-api/?(.*)$ /$1 break;\n proxy_pass $idp_up_api;' "$up" + return 0 + fi printf ' proxy_pass %s/;' "$up" } -# WebSocket /idp-api/ws → media-ws /ws (без rewrite break). +# WebSocket /idp-api/ws → media-ws /ws. render_proxy_idp_ws() { local up up="$(nginx_upstream ws)" + if [[ "$NGINX_MODE" == "docker" ]]; then + printf ' set $idp_up_ws %s;\n rewrite ^/idp-api/ws/?(.*)$ /ws/$1 break;\n proxy_pass $idp_up_ws;' "$up" + return 0 + fi printf ' proxy_pass %s/ws;' "$up" }