diff --git a/docs/NGINX_DIAGNOSTICS.md b/docs/NGINX_DIAGNOSTICS.md new file mode 100644 index 0000000..0142aee --- /dev/null +++ b/docs/NGINX_DIAGNOSTICS.md @@ -0,0 +1,166 @@ +# Диагностика nginx для CatLink + +## Скрипты проверки + +### 🚀 Быстрая проверка +```bash +make check-nginx +# ИЛИ +./scripts/nginx-quick-check.sh +``` + +**Что проверяет:** +- ✅ Статус службы nginx +- ✅ Корректность конфигурации +- ✅ Прослушивание портов +- ✅ Доступность backend (порт 8000) +- ✅ Доступность frontend (порт 3000) +- ✅ Работа проксирования через nginx +- ✅ Доступность по доменному имени + +### 🔍 Полная диагностика +```bash +make check-nginx-full +# ИЛИ +./scripts/check-nginx.sh +``` + +**Что проверяет:** +- 🔧 Установка и статус nginx +- 📝 Конфигурационные файлы +- 🌐 Прослушиваемые порты (80, 443) +- 🔗 Доступность backend сервисов +- 🌍 Проверка через nginx +- 🌐 Доменные имена +- 🔒 SSL сертификаты +- 📄 Анализ конфигурации +- 📊 Логи nginx +- 💡 Рекомендации по исправлению + +## Типичные проблемы и решения + +### ❌ nginx не работает +```bash +sudo systemctl start nginx +sudo systemctl enable nginx +``` + +### ❌ Ошибка в конфигурации +```bash +sudo nginx -t +./scripts/setup-nginx.sh +``` + +### ❌ Порт 80 не прослушивается +```bash +sudo systemctl restart nginx +sudo ss -tlnp | grep nginx +``` + +### ❌ Backend недоступен +```bash +make status +make up-prod +docker ps +``` + +### ❌ Frontend недоступен +```bash +make logs-frontend +make restart +``` + +### ❌ Домен недоступен +```bash +# Проверьте DNS записи +dig links.shareon.kr +nslookup links.shareon.kr + +# Проверьте nginx конфигурацию +sudo nginx -t +``` + +## Проверка конфигурации вручную + +### Проверка nginx +```bash +# Статус службы +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 +``` + +### Проверка портов +```bash +# Все прослушиваемые порты +sudo ss -tlnp + +# Только nginx +sudo ss -tlnp | grep nginx + +# Проверка портов 80 и 443 +sudo netstat -tlnp | grep :80 +sudo netstat -tlnp | grep :443 +``` + +### Проверка сервисов +```bash +# 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 контейнеров +```bash +# Статус контейнеров +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 +``` + +## Автоматическая диагностика + +Для автоматической проверки при развертывании добавьте в ваши скрипты: + +```bash +# В конце deploy скрипта +echo "🔍 Проверка развертывания..." +./scripts/nginx-quick-check.sh + +if [ $? -eq 0 ]; then + echo "✅ Развертывание успешно завершено!" +else + echo "❌ Обнаружены проблемы. Запустите полную диагностику:" + echo " ./scripts/check-nginx.sh" +fi +``` + +## Мониторинг + +Для постоянного мониторинга можете добавить в crontab: + +```bash +# Проверка каждые 5 минут +*/5 * * * * /opt/links/scripts/nginx-quick-check.sh >> /var/log/catlink-health.log 2>&1 +``` \ No newline at end of file