fix and update
This commit is contained in:
45
install.sh
45
install.sh
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
SCRIPT_VERSION="2.3.3"
|
SCRIPT_VERSION="2.3.4"
|
||||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "$ROOT_DIR"
|
cd "$ROOT_DIR"
|
||||||
|
|
||||||
@@ -362,6 +362,17 @@ stop_docker_nginx() {
|
|||||||
fi
|
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() {
|
prepare_compose_stack() {
|
||||||
resolve_nginx_mode_and_ports
|
resolve_nginx_mode_and_ports
|
||||||
write_compose_override
|
write_compose_override
|
||||||
@@ -1996,22 +2007,33 @@ EOF
|
|||||||
# Блок location / для отдельного домена API (api.example.com).
|
# Блок location / для отдельного домена API (api.example.com).
|
||||||
# CORS полностью на api-gateway (enableCors) — nginx только проксирует,
|
# CORS полностью на api-gateway (enableCors) — nginx только проксирует,
|
||||||
# иначе add_header/if в nginx ломают ответы на авторизованные cross-origin запросы (502).
|
# иначе add_header/if в nginx ломают ответы на авторизованные cross-origin запросы (502).
|
||||||
|
# docker: НЕ используем upstream{} — nginx резолвит api-gateway один раз при старте
|
||||||
|
# и после пересборки контейнера (новый IP) все запросы дают 502 Connection refused.
|
||||||
build_nginx_api_upstream_block() {
|
build_nginx_api_upstream_block() {
|
||||||
local upstream
|
|
||||||
if [[ "$NGINX_MODE" == "docker" ]]; then
|
if [[ "$NGINX_MODE" == "docker" ]]; then
|
||||||
upstream="api-gateway:3000"
|
return 0
|
||||||
else
|
|
||||||
upstream="127.0.0.1:3000"
|
|
||||||
fi
|
fi
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
upstream ${NGINX_PREFIX}_api {
|
upstream ${NGINX_PREFIX}_api {
|
||||||
server ${upstream};
|
server 127.0.0.1:3000;
|
||||||
keepalive 64;
|
keepalive 64;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
build_nginx_api_location_block() {
|
build_nginx_api_location_block() {
|
||||||
|
if [[ "$NGINX_MODE" == "docker" ]]; then
|
||||||
|
local proxy
|
||||||
|
proxy="$(render_proxy_root api)"
|
||||||
|
cat <<EOF
|
||||||
|
location / {
|
||||||
|
${proxy}
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
${nginx_proxy_headers}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://${NGINX_PREFIX}_api;
|
proxy_pass http://${NGINX_PREFIX}_api;
|
||||||
@@ -2400,6 +2422,7 @@ write_all_nginx_configs() {
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
ok "Конфиги Nginx: ${LOCAL_CONF_DIR}"
|
ok "Конфиги Nginx: ${LOCAL_CONF_DIR}"
|
||||||
|
reload_docker_nginx
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2770,6 +2793,12 @@ diagnose_common_issues() {
|
|||||||
elif [[ "$(env_get NGINX_MODE docker)" == "docker" ]] && compose_uses_proxy_profile; then
|
elif [[ "$(env_get NGINX_MODE docker)" == "docker" ]] && compose_uses_proxy_profile; then
|
||||||
echo -e " ${YELLOW}!${NC} Docker Nginx не запущен (ожидался в режиме docker)"
|
echo -e " ${YELLOW}!${NC} Docker Nginx не запущен (ожидался в режиме docker)"
|
||||||
issues=$((issues + 1))
|
issues=$((issues + 1))
|
||||||
|
elif [[ "$(env_get NGINX_MODE docker)" == "docker" ]] \
|
||||||
|
&& [[ -f "${LOCAL_CONF_DIR}/${NGINX_PREFIX}-api.conf" ]] \
|
||||||
|
&& grep -q "upstream ${NGINX_PREFIX}_api" "${LOCAL_CONF_DIR}/${NGINX_PREFIX}-api.conf" 2>/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
|
elif [[ "$(env_get NGINX_MODE docker)" == "host" ]]; then
|
||||||
if system_nginx_is_active; then
|
if system_nginx_is_active; then
|
||||||
echo -e " ${GREEN}✔${NC} Системный Nginx: активен"
|
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
|
wait_for_api_grpc_ready 90 || compose_build_and_up api-gateway
|
||||||
|
|
||||||
log "Шаг 4/6: пересоздание edge-сервисов (frontend, docs, media-ws)..."
|
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 "frontend" 60
|
||||||
wait_for_service "docs" 60
|
wait_for_service "docs" 60
|
||||||
|
|
||||||
@@ -3134,6 +3163,8 @@ action_fix_all_errors() {
|
|||||||
apply_intranet_selfsigned_runtime
|
apply_intranet_selfsigned_runtime
|
||||||
compose_build_and_up nginx ldap-auth
|
compose_build_and_up nginx ldap-auth
|
||||||
wait_for_service "nginx" 45
|
wait_for_service "nginx" 45
|
||||||
|
reload_docker_nginx
|
||||||
|
wait_for_api_grpc_ready 30 || true
|
||||||
if ! docker_nginx_container_running; then
|
if ! docker_nginx_container_running; then
|
||||||
fail "Контейнер lendry-id-nginx не запущен. Проверьте: docker compose --profile proxy logs nginx"
|
fail "Контейнер lendry-id-nginx не запущен. Проверьте: docker compose --profile proxy logs nginx"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user