#!/bin/bash # scripts/fix-nginx-admin.sh - Исправление маршрута admin в nginx set -e echo "🔧 Исправление маршрута /admin в nginx..." # Проверяем, существует ли файл конфигурации if [ ! -f "/etc/nginx/sites-available/links" ]; then echo "❌ Конфигурация nginx не найдена. Создаем новую..." sudo ./scripts/setup-nginx.sh exit 0 fi echo "📄 Текущая конфигурация nginx:" sudo cat /etc/nginx/sites-available/links | grep -A 5 -B 2 "location /admin" echo "" echo "🔍 Проверяем текущую конфигурацию..." # Проверим, есть ли маршрут admin if sudo grep -q "location /admin/" /etc/nginx/sites-available/links; then echo "✅ Маршрут /admin/ найден в конфигурации" else echo "❌ Маршрут /admin/ не найден. Добавляем..." # Создаем backup sudo cp /etc/nginx/sites-available/links "/etc/nginx/sites-available/links.backup.$(date +%Y%m%d_%H%M%S)" # Добавляем маршрут admin после API sudo sed -i '/location \/api\// a\\n # Proxy admin requests to backend (Django)\n location /admin/ {\n proxy_pass http://localhost:8000;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }' /etc/nginx/sites-available/links fi echo "" echo "🧪 Проверяем конфигурацию nginx..." if sudo nginx -t; then echo "✅ Конфигурация nginx корректна" else echo "❌ Ошибка в конфигурации nginx" exit 1 fi echo "" echo "🔄 Перезагружаем nginx..." sudo systemctl reload nginx echo "" echo "🧪 Тестируем маршрут /admin..." sleep 2 if curl -s -o /dev/null -w "%{http_code}" http://localhost/admin/ | grep -q "200\|302"; then echo "✅ Маршрут /admin/ работает через nginx" else echo "❌ Маршрут /admin/ не работает" echo "" echo "🔍 Дополнительная диагностика:" echo " - Проверяем статус контейнеров:" docker-compose ps echo "" echo " - Проверяем прямое подключение к Django:" if curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/admin/ | grep -q "200\|302"; then echo " ✅ Django admin доступен напрямую" echo " ❌ Проблема в конфигурации nginx" else echo " ❌ Django admin недоступен напрямую" echo " ❌ Проблема в Django контейнере" fi fi echo "" echo "📋 Полная конфигурация nginx:" sudo cat /etc/nginx/sites-available/links echo "" echo "✅ Исправление завершено!"