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

166 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Диагностика 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
```