fix sh
This commit is contained in:
parent
5d49eee98a
commit
6ff645c2e6
93
start.sh
93
start.sh
|
|
@ -1130,7 +1130,28 @@ setup_nginx() {
|
|||
log_success "Web2-client развернут в /var/www/my-network-web"
|
||||
fi
|
||||
|
||||
# Создание конфигурации nginx
|
||||
# Полная очистка старых nginx конфигураций
|
||||
log_info "Очистка старых nginx конфигураций..."
|
||||
|
||||
# Удаляем все существующие конфигурации sites
|
||||
rm -f /etc/nginx/sites-enabled/* 2>/dev/null || true
|
||||
rm -f /etc/nginx/sites-available/my-network* 2>/dev/null || true
|
||||
|
||||
# Очистка конфигураций certbot в nginx.conf
|
||||
if [ -f /etc/nginx/nginx.conf.backup ]; then
|
||||
cp /etc/nginx/nginx.conf.backup /etc/nginx/nginx.conf
|
||||
else
|
||||
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
|
||||
fi
|
||||
|
||||
# Удаляем все SSL включения из основного nginx.conf
|
||||
sed -i '/# managed by Certbot/d' /etc/nginx/nginx.conf 2>/dev/null || true
|
||||
sed -i '/ssl_certificate/d' /etc/nginx/nginx.conf 2>/dev/null || true
|
||||
sed -i '/ssl_certificate_key/d' /etc/nginx/nginx.conf 2>/dev/null || true
|
||||
sed -i '/ssl_dhparam/d' /etc/nginx/nginx.conf 2>/dev/null || true
|
||||
|
||||
# Создание чистой HTTP конфигурации nginx
|
||||
log_info "Создание чистой HTTP конфигурации nginx..."
|
||||
cat > /etc/nginx/sites-available/my-network << EOF
|
||||
# MY Network v3.0 nginx configuration
|
||||
|
||||
|
|
@ -1200,29 +1221,35 @@ $([ "$ENABLE_WEB_CLIENT" = "true" ] && echo " try_files \$uri \$uri/ =404
|
|||
}
|
||||
EOF
|
||||
|
||||
# Активация сайта
|
||||
# Активация HTTP конфигурации
|
||||
if [ ! -L "/etc/nginx/sites-enabled/my-network" ]; then
|
||||
ln -s /etc/nginx/sites-available/my-network /etc/nginx/sites-enabled/
|
||||
fi
|
||||
|
||||
# Отключение дефолтного сайта
|
||||
if [ -L "/etc/nginx/sites-enabled/default" ]; then
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
fi
|
||||
|
||||
# Тест конфигурации nginx
|
||||
log_info "Тестирование HTTP конфигурации nginx..."
|
||||
if nginx -t; then
|
||||
log_success "Конфигурация nginx корректна"
|
||||
log_success "HTTP конфигурация nginx корректна"
|
||||
else
|
||||
log_error "Ошибка в конфигурации nginx"
|
||||
log_error "Ошибка в HTTP конфигурации nginx"
|
||||
log_info "Показать детали ошибки nginx:"
|
||||
nginx -t 2>&1 || true
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Запуск nginx
|
||||
# Запуск nginx с HTTP конфигурацией
|
||||
systemctl enable nginx
|
||||
systemctl restart nginx
|
||||
|
||||
log_success "Nginx настроен и запущен"
|
||||
# Проверяем, что nginx запустился успешно
|
||||
sleep 3
|
||||
if systemctl is-active nginx >/dev/null 2>&1; then
|
||||
log_success "Nginx запущен с HTTP конфигурацией"
|
||||
else
|
||||
log_error "Nginx не запустился"
|
||||
systemctl status nginx || true
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Настройка SSL если нужно
|
||||
if [ "$ENABLE_SSL" = "true" ] && [ -n "$DOMAIN" ] && [ -n "$EMAIL" ]; then
|
||||
|
|
@ -1270,45 +1297,17 @@ install_ssl_certificates() {
|
|||
if [ -d "/etc/letsencrypt/live/$DOMAIN" ]; then
|
||||
log_warn "Обнаружен существующий сертификат для $DOMAIN, удаляем для предотвращения конфликтов..."
|
||||
certbot delete --cert-name "$DOMAIN" --non-interactive 2>/dev/null || true
|
||||
|
||||
# Перезапуск nginx после удаления сертификатов чтобы очистить SSL конфигурацию
|
||||
log_info "Перезапуск nginx для обновления конфигурации..."
|
||||
systemctl restart nginx
|
||||
sleep 5
|
||||
|
||||
# Проверяем что nginx работает корректно без SSL
|
||||
if ! nginx -t 2>/dev/null; then
|
||||
log_warn "Nginx конфигурация некорректна, восстанавливаем базовую HTTP конфигурацию..."
|
||||
# Пересоздаем чистую HTTP конфигурацию
|
||||
cat > /etc/nginx/sites-available/my-network << EOF
|
||||
server {
|
||||
listen 80;
|
||||
server_name $DOMAIN;
|
||||
|
||||
client_max_body_size 10G;
|
||||
client_body_timeout 300s;
|
||||
client_header_timeout 300s;
|
||||
|
||||
location / {
|
||||
$([ "$ENABLE_WEB_CLIENT" = "true" ] && echo " root /var/www/my-network-web;" || echo " return 404;")
|
||||
$([ "$ENABLE_WEB_CLIENT" = "true" ] && echo " index index.html;" || echo "")
|
||||
$([ "$ENABLE_WEB_CLIENT" = "true" ] && echo " try_files \$uri \$uri/ =404;" || echo "")
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:15100;
|
||||
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;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
systemctl restart nginx
|
||||
fi
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# Убеждаемся что nginx работает с HTTP перед установкой SSL
|
||||
log_info "Проверка готовности nginx для SSL..."
|
||||
if ! systemctl is-active nginx >/dev/null 2>&1 || ! nginx -t 2>/dev/null; then
|
||||
log_error "Nginx не готов для SSL установки"
|
||||
log_info "Система продолжит работу без SSL"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Получение сертификата через certbot с явным указанием типа ключа
|
||||
log_info "Запуск certbot для получения SSL сертификата..."
|
||||
if certbot --nginx -d "$DOMAIN" --email "$EMAIL" --agree-tos --non-interactive --redirect --key-type rsa --cert-name "$DOMAIN"; then
|
||||
|
|
|
|||
Loading…
Reference in New Issue