This commit is contained in:
75
scripts/fix-nginx-admin.sh
Executable file
75
scripts/fix-nginx-admin.sh
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/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 "✅ Исправление завершено!"
|
||||
Reference in New Issue
Block a user