Files
links/docs/NGINX_DIAGNOSTICS.md
Andrey K. Choi 5376d5139e 📋 Добавлены скрипты диагностики nginx
 Новые скрипты:
- scripts/check-nginx.sh - полная диагностика nginx
- scripts/nginx-quick-check.sh - быстрая проверка

🔧 Новые команды Makefile:
- make check-nginx - быстрая проверка
- make check-nginx-full - полная диагностика

📊 Что проверяют скрипты:
- Статус службы nginx
- Корректность конфигурации
- Прослушиваемые порты (80, 443)
- Доступность backend/frontend сервисов
- Проксирование через nginx
- Доменные имена и DNS
- SSL сертификаты
- Анализ логов и конфигурации
- Рекомендации по исправлению

📝 Документация:
- docs/NGINX_DIAGNOSTICS.md - руководство по диагностике

🎯 Использование на сервере:
- ./scripts/nginx-quick-check.sh
- ./scripts/check-nginx.sh
2025-11-02 14:57:25 +09:00

3.9 KiB
Raw Blame History

Диагностика nginx для CatLink

Скрипты проверки

🚀 Быстрая проверка

make check-nginx
# ИЛИ
./scripts/nginx-quick-check.sh

Что проверяет:

  • Статус службы nginx
  • Корректность конфигурации
  • Прослушивание портов
  • Доступность backend (порт 8000)
  • Доступность frontend (порт 3000)
  • Работа проксирования через nginx
  • Доступность по доменному имени

🔍 Полная диагностика

make check-nginx-full
# ИЛИ
./scripts/check-nginx.sh

Что проверяет:

  • 🔧 Установка и статус nginx
  • 📝 Конфигурационные файлы
  • 🌐 Прослушиваемые порты (80, 443)
  • 🔗 Доступность backend сервисов
  • 🌍 Проверка через nginx
  • 🌐 Доменные имена
  • 🔒 SSL сертификаты
  • 📄 Анализ конфигурации
  • 📊 Логи nginx
  • 💡 Рекомендации по исправлению

Типичные проблемы и решения

nginx не работает

sudo systemctl start nginx
sudo systemctl enable nginx

Ошибка в конфигурации

sudo nginx -t
./scripts/setup-nginx.sh

Порт 80 не прослушивается

sudo systemctl restart nginx
sudo ss -tlnp | grep nginx

Backend недоступен

make status
make up-prod
docker ps

Frontend недоступен

make logs-frontend
make restart

Домен недоступен

# Проверьте DNS записи
dig links.shareon.kr
nslookup links.shareon.kr

# Проверьте nginx конфигурацию
sudo nginx -t

Проверка конфигурации вручную

Проверка nginx

# Статус службы
sudo systemctl status nginx

# Проверка конфигурации
sudo nginx -t

# Перезагрузка конфигурации
sudo nginx -s reload

# Просмотр логов
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

Проверка портов

# Все прослушиваемые порты
sudo ss -tlnp

# Только nginx
sudo ss -tlnp | grep nginx

# Проверка портов 80 и 443
sudo netstat -tlnp | grep :80
sudo netstat -tlnp | grep :443

Проверка сервисов

# Backend API
curl -I http://localhost:8000/api/

# Frontend
curl -I http://localhost:3000/

# Через nginx
curl -I http://localhost/
curl -I http://localhost/api/
curl -I http://links.shareon.kr/

Проверка Docker контейнеров

# Статус контейнеров
docker ps

# Логи
docker logs links-web-1
docker logs links-frontend-1
docker logs links-db-1

# Переменные окружения
docker exec links-frontend-1 env | grep NEXT_PUBLIC

Автоматическая диагностика

Для автоматической проверки при развертывании добавьте в ваши скрипты:

# В конце deploy скрипта
echo "🔍 Проверка развертывания..."
./scripts/nginx-quick-check.sh

if [ $? -eq 0 ]; then
    echo "✅ Развертывание успешно завершено!"
else
    echo "❌ Обнаружены проблемы. Запустите полную диагностику:"
    echo "   ./scripts/check-nginx.sh"
fi

Мониторинг

Для постоянного мониторинга можете добавить в crontab:

# Проверка каждые 5 минут
*/5 * * * * /opt/links/scripts/nginx-quick-check.sh >> /var/log/catlink-health.log 2>&1