From 3a1bfb09039110725a0034ef8d43d704742a31f0 Mon Sep 17 00:00:00 2001 From: lendry Date: Mon, 29 Jun 2026 18:38:53 +0300 Subject: [PATCH] fix and update --- install.sh | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/install.sh b/install.sh index ffa32be..b204cc8 100644 --- a/install.sh +++ b/install.sh @@ -10,7 +10,7 @@ set -euo pipefail -SCRIPT_VERSION="2.3.3" +SCRIPT_VERSION="2.3.4" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$ROOT_DIR" @@ -362,6 +362,17 @@ stop_docker_nginx() { fi } +reload_docker_nginx() { + docker_nginx_container_running || return 0 + log "Перезагрузка конфигурации Docker Nginx..." + if docker_cmd compose --env-file .env --profile proxy exec -T nginx nginx -s reload 2>/dev/null; then + ok "Docker Nginx: конфигурация перезагружена" + else + warn "nginx -s reload не удался — перезапуск контейнера lendry-id-nginx" + docker_cmd compose --env-file .env --profile proxy restart nginx 2>/dev/null || true + fi +} + prepare_compose_stack() { resolve_nginx_mode_and_ports write_compose_override @@ -1996,22 +2007,33 @@ EOF # Блок location / для отдельного домена API (api.example.com). # CORS полностью на api-gateway (enableCors) — nginx только проксирует, # иначе add_header/if в nginx ломают ответы на авторизованные cross-origin запросы (502). +# docker: НЕ используем upstream{} — nginx резолвит api-gateway один раз при старте +# и после пересборки контейнера (новый IP) все запросы дают 502 Connection refused. build_nginx_api_upstream_block() { - local upstream if [[ "$NGINX_MODE" == "docker" ]]; then - upstream="api-gateway:3000" - else - upstream="127.0.0.1:3000" + return 0 fi cat </dev/null; then + echo -e " ${RED}✘${NC} Конфиг API-домена использует статический upstream — после пересборки api-gateway будет 502" + echo " Решение: ./install.sh --fix-all (перегенерирует конфиг с динамическим DNS)" + issues=$((issues + 1)) elif [[ "$(env_get NGINX_MODE docker)" == "host" ]]; then if system_nginx_is_active; then echo -e " ${GREEN}✔${NC} Системный Nginx: активен" @@ -3110,7 +3139,7 @@ action_fix_all_errors() { wait_for_api_grpc_ready 90 || compose_build_and_up api-gateway log "Шаг 4/6: пересоздание edge-сервисов (frontend, docs, media-ws)..." - compose_build_and_up "${HOST_EDGE_SERVICES[@]}" + compose_build_and_up frontend docs media-ws wait_for_service "frontend" 60 wait_for_service "docs" 60 @@ -3134,6 +3163,8 @@ action_fix_all_errors() { apply_intranet_selfsigned_runtime compose_build_and_up nginx ldap-auth wait_for_service "nginx" 45 + reload_docker_nginx + wait_for_api_grpc_ready 30 || true if ! docker_nginx_container_running; then fail "Контейнер lendry-id-nginx не запущен. Проверьте: docker compose --profile proxy logs nginx" fi