75 lines
3.0 KiB
Bash
Executable File
75 lines
3.0 KiB
Bash
Executable File
#!/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 "✅ Исправление завершено!" |