#!/bin/bash # Быстрое исправление nginx конфигурации # Исправляет ошибку "proxy_pass cannot have URI part in location given by regular expression" echo "🔧 Исправление nginx конфигурации..." # Резервная копия sudo cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/default.backup.$(date +%s) # Создание корректной конфигурации sudo tee /etc/nginx/sites-available/default > /dev/null << 'EOF' server { listen 80; server_name _; # Максимальный размер загружаемых файлов client_max_body_size 100M; # API проксирование (исправлено) location /api/ { proxy_pass http://localhost:3000/api/; 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_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; proxy_buffering off; } # Health check location /health { proxy_pass http://localhost:3000/api/health; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # Альтернативные порты location /api5000/ { proxy_pass http://localhost:5000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # WebSocket поддержка location /ws/ { proxy_pass http://localhost:3000/ws/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } # Основная страница location / { proxy_pass http://localhost:3000/; 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; } # Gzip сжатие gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json; } EOF # Тестирование конфигурации echo "🧪 Тестирование nginx..." if sudo nginx -t; then echo "✅ Конфигурация корректна" sudo systemctl reload nginx echo "✅ Nginx перезагружен" else echo "❌ Ошибка в конфигурации!" exit 1 fi echo "" echo "🌐 Тестирование соединений:" sleep 3 # Тест nginx proxy if timeout 5 curl -s http://localhost/health > /dev/null 2>&1; then echo "✅ nginx proxy (/health) - РАБОТАЕТ" else echo "❌ nginx proxy (/health) - НЕ РАБОТАЕТ" fi if timeout 5 curl -s http://localhost/api/health > /dev/null 2>&1; then echo "✅ nginx proxy (/api/health) - РАБОТАЕТ" else echo "❌ nginx proxy (/api/health) - НЕ РАБОТАЕТ" fi echo "" echo "✅ Nginx исправлен! Теперь можно настроить домен и SSL:" echo "sudo ./scripts/setup_domain_ssl.sh"