From 5376d5139eb1ce9d5c8924652091b0ea6627bfff Mon Sep 17 00:00:00 2001 From: "Andrey K. Choi" Date: Sun, 2 Nov 2025 14:57:25 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=8B=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D1=8B=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D1=8B=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D0=BA=D0=B8=20nginx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✨ Новые скрипты: - 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 --- docs/NGINX_DIAGNOSTICS.md | 166 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 docs/NGINX_DIAGNOSTICS.md 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