This commit is contained in:
6
Makefile
6
Makefile
@@ -184,6 +184,12 @@ restore: ## Восстановить из бэкапа
|
|||||||
|
|
||||||
# === Testing and Quality ===
|
# === Testing and Quality ===
|
||||||
|
|
||||||
|
check-nginx: ## Быстрая проверка nginx
|
||||||
|
@./scripts/nginx-quick-check.sh
|
||||||
|
|
||||||
|
check-nginx-full: ## Полная диагностика nginx
|
||||||
|
@./scripts/check-nginx.sh
|
||||||
|
|
||||||
test: ## Запуск тестов
|
test: ## Запуск тестов
|
||||||
@echo "🧪 Запуск тестов..."
|
@echo "🧪 Запуск тестов..."
|
||||||
@$(DOCKER_COMPOSE) exec web python manage.py test
|
@$(DOCKER_COMPOSE) exec web python manage.py test
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ services:
|
|||||||
web:
|
web:
|
||||||
environment:
|
environment:
|
||||||
- DJANGO_DEBUG=False
|
- DJANGO_DEBUG=False
|
||||||
- DJANGO_SECURE_SSL_REDIRECT=True
|
- DJANGO_SECURE_SSL_REDIRECT=False
|
||||||
- DJANGO_SECURE_HSTS_SECONDS=31536000
|
- DJANGO_SECURE_HSTS_SECONDS=31536000
|
||||||
- DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
- DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS=True
|
||||||
- DJANGO_SECURE_HSTS_PRELOAD=True
|
- DJANGO_SECURE_HSTS_PRELOAD=True
|
||||||
@@ -13,7 +13,7 @@ services:
|
|||||||
frontend:
|
frontend:
|
||||||
environment:
|
environment:
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- NEXT_PUBLIC_API_URL=https://links.shareon.kr
|
- NEXT_PUBLIC_API_URL=http://links.shareon.kr
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
db:
|
db:
|
||||||
|
|||||||
216
scripts/check-nginx.sh
Executable file
216
scripts/check-nginx.sh
Executable file
@@ -0,0 +1,216 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# scripts/check-nginx.sh - Проверка настроек nginx для CatLink
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "🔍 Проверка настроек nginx для CatLink"
|
||||||
|
echo "======================================"
|
||||||
|
|
||||||
|
# Цвета для вывода
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
# Функция для проверки с цветным выводом
|
||||||
|
check_status() {
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo -e "${GREEN}✅ $1${NC}"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ $1${NC}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}1. Проверка установки nginx${NC}"
|
||||||
|
echo "------------------------"
|
||||||
|
|
||||||
|
# Проверка установки nginx
|
||||||
|
if command -v nginx &> /dev/null; then
|
||||||
|
echo -e "${GREEN}✅ nginx установлен: $(nginx -v 2>&1)${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ nginx не установлен${NC}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка статуса nginx
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}2. Проверка статуса службы nginx${NC}"
|
||||||
|
echo "-------------------------------"
|
||||||
|
|
||||||
|
systemctl is-active nginx &> /dev/null
|
||||||
|
check_status "nginx активен"
|
||||||
|
|
||||||
|
systemctl is-enabled nginx &> /dev/null
|
||||||
|
check_status "nginx включен в автозагрузку"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}3. Проверка конфигурации nginx${NC}"
|
||||||
|
echo "--------------------------------"
|
||||||
|
|
||||||
|
# Проверка синтаксиса конфигурации
|
||||||
|
sudo nginx -t &> /dev/null
|
||||||
|
check_status "Синтаксис конфигурации nginx корректен"
|
||||||
|
|
||||||
|
# Проверка наличия конфигурации для CatLink
|
||||||
|
if [ -f "/etc/nginx/sites-available/links" ]; then
|
||||||
|
echo -e "${GREEN}✅ Конфигурация CatLink найдена: /etc/nginx/sites-available/links${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Конфигурация CatLink не найдена${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -L "/etc/nginx/sites-enabled/links" ]; then
|
||||||
|
echo -e "${GREEN}✅ Конфигурация CatLink активна: /etc/nginx/sites-enabled/links${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Конфигурация CatLink не активна${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}4. Проверка портов${NC}"
|
||||||
|
echo "----------------"
|
||||||
|
|
||||||
|
# Проверка прослушиваемых портов
|
||||||
|
if ss -tlnp | grep -q ":80.*nginx" 2>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ nginx слушает порт 80${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ nginx НЕ слушает порт 80${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ss -tlnp | grep -q ":443.*nginx" 2>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ nginx слушает порт 443 (SSL)${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ nginx НЕ слушает порт 443 (SSL не настроен)${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}5. Проверка доступности backend сервисов${NC}"
|
||||||
|
echo "---------------------------------------"
|
||||||
|
|
||||||
|
# Проверка доступности backend на порту 8000
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost:8000/api/ | grep -q "200\|404\|403"; then
|
||||||
|
echo -e "${GREEN}✅ Backend доступен на localhost:8000${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Backend НЕ доступен на localhost:8000${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка доступности frontend на порту 3000
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/ | grep -q "200\|404"; then
|
||||||
|
echo -e "${GREEN}✅ Frontend доступен на localhost:3000${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Frontend НЕ доступен на localhost:3000${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}6. Проверка доступности через nginx${NC}"
|
||||||
|
echo "-----------------------------------"
|
||||||
|
|
||||||
|
# Проверка главной страницы
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost/ | grep -q "200"; then
|
||||||
|
echo -e "${GREEN}✅ Главная страница доступна через nginx${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Главная страница НЕ доступна через nginx${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка API через nginx
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost/api/ | grep -q "200\|404\|403"; then
|
||||||
|
echo -e "${GREEN}✅ API доступно через nginx${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ API НЕ доступно через nginx${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка admin через nginx
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://localhost/admin/ | grep -q "200\|302"; then
|
||||||
|
echo -e "${GREEN}✅ Admin доступен через nginx${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Admin НЕ доступен через nginx${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}7. Проверка доменных имен${NC}"
|
||||||
|
echo "--------------------------"
|
||||||
|
|
||||||
|
# Проверка доступности по доменному имени
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://links.shareon.kr/ | grep -q "200"; then
|
||||||
|
echo -e "${GREEN}✅ Сайт доступен по домену links.shareon.kr${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ Сайт НЕ доступен по домену links.shareon.kr (проверьте DNS)${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if curl -s -o /dev/null -w "%{http_code}" http://sharon.kr/ | grep -q "200"; then
|
||||||
|
echo -e "${GREEN}✅ Сайт доступен по домену sharon.kr${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ Сайт НЕ доступен по домену sharon.kr (проверьте DNS)${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}8. Проверка SSL сертификатов${NC}"
|
||||||
|
echo "----------------------------"
|
||||||
|
|
||||||
|
# Проверка SSL сертификатов
|
||||||
|
if [ -d "/etc/letsencrypt/live/links.shareon.kr" ]; then
|
||||||
|
echo -e "${GREEN}✅ SSL сертификат для links.shareon.kr найден${NC}"
|
||||||
|
|
||||||
|
# Проверка срока действия сертификата
|
||||||
|
if openssl x509 -in /etc/letsencrypt/live/links.shareon.kr/cert.pem -noout -checkend 604800 &> /dev/null; then
|
||||||
|
echo -e "${GREEN}✅ SSL сертификат действителен более 7 дней${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ SSL сертификат истекает менее чем через 7 дней${NC}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ SSL сертификат не найден${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}9. Анализ конфигурации CatLink${NC}"
|
||||||
|
echo "-------------------------------"
|
||||||
|
|
||||||
|
if [ -f "/etc/nginx/sites-available/links" ]; then
|
||||||
|
echo "📄 Содержимое конфигурации nginx для CatLink:"
|
||||||
|
echo "=============================================="
|
||||||
|
cat /etc/nginx/sites-available/links
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Конфигурация не найдена${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}10. Проверка логов nginx${NC}"
|
||||||
|
echo "------------------------"
|
||||||
|
|
||||||
|
echo "📊 Последние 5 строк из access.log:"
|
||||||
|
sudo tail -5 /var/log/nginx/access.log 2>/dev/null || echo "Лог недоступен"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "📊 Последние 5 строк из error.log:"
|
||||||
|
sudo tail -5 /var/log/nginx/error.log 2>/dev/null || echo "Лог недоступен"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}11. Рекомендации${NC}"
|
||||||
|
echo "---------------"
|
||||||
|
|
||||||
|
if ! systemctl is-active nginx &> /dev/null; then
|
||||||
|
echo -e "${YELLOW}💡 Запустите nginx: sudo systemctl start nginx${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "/etc/nginx/sites-available/links" ]; then
|
||||||
|
echo -e "${YELLOW}💡 Создайте конфигурацию: ./scripts/setup-nginx.sh${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "/etc/letsencrypt/live/links.shareon.kr" ]; then
|
||||||
|
echo -e "${YELLOW}💡 Получите SSL сертификат: make ssl-cert${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! curl -s -o /dev/null http://localhost:3000/; then
|
||||||
|
echo -e "${YELLOW}💡 Запустите контейнеры: make up-prod${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}🎉 Проверка nginx завершена!${NC}"
|
||||||
|
echo ""
|
||||||
|
echo -e "${BLUE}Для получения помощи:${NC}"
|
||||||
|
echo "• Перезапуск nginx: sudo systemctl restart nginx"
|
||||||
|
echo "• Проверка конфигурации: sudo nginx -t"
|
||||||
|
echo "• Просмотр логов: sudo journalctl -u nginx -f"
|
||||||
|
echo "• Настройка CatLink: ./scripts/setup-nginx.sh"
|
||||||
63
scripts/nginx-quick-check.sh
Executable file
63
scripts/nginx-quick-check.sh
Executable file
@@ -0,0 +1,63 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# scripts/nginx-quick-check.sh - Быстрая проверка nginx
|
||||||
|
|
||||||
|
echo "🚀 Быстрая проверка nginx для CatLink"
|
||||||
|
echo "===================================="
|
||||||
|
|
||||||
|
# Цвета
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
RED='\033[0;31m'
|
||||||
|
YELLOW='\033[1;33m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
# Проверка nginx
|
||||||
|
if systemctl is-active nginx &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ nginx работает${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ nginx не работает${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка конфигурации
|
||||||
|
if sudo nginx -t &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ Конфигурация nginx корректна${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Ошибка в конфигурации nginx${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка портов
|
||||||
|
if ss -tlnp | grep -q ":80.*nginx"; then
|
||||||
|
echo -e "${GREEN}✅ Порт 80 прослушивается${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Порт 80 не прослушивается${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка backend
|
||||||
|
if curl -s http://localhost:8000/api/ &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ Backend (8000) доступен${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Backend (8000) недоступен${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка frontend
|
||||||
|
if curl -s http://localhost:3000/ &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ Frontend (3000) доступен${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Frontend (3000) недоступен${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка через nginx
|
||||||
|
if curl -s http://localhost/ &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ Nginx проксирование работает${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ Nginx проксирование не работает${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверка домена
|
||||||
|
if curl -s http://links.shareon.kr/ &>/dev/null; then
|
||||||
|
echo -e "${GREEN}✅ Домен links.shareon.kr доступен${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}⚠️ Домен links.shareon.kr недоступен${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Для подробной диагностики запустите: ./scripts/check-nginx.sh"
|
||||||
Reference in New Issue
Block a user