🌐 Add Nginx configuration and setup scripts
- Added nginx-smartsoltech.conf: Ready-to-use Nginx config with SSL, proxy, security headers - Added setup-nginx.sh: Automated Nginx setup script with symlink creation - Added NGINX_SETUP.md: Comprehensive Nginx setup guide with troubleshooting - Added NGINX_QUICK_SETUP.md: Quick reference cheatsheet Features: - HTTP to HTTPS redirect - www to non-www redirect - Proxy to Django (localhost:8000) - SSL configuration (ready for Let's Encrypt) - Security headers (HSTS, XSS, etc) - Logging configuration - Automated default removal and symlink creation
This commit is contained in:
128
setup-nginx.sh
Executable file
128
setup-nginx.sh
Executable file
@@ -0,0 +1,128 @@
|
||||
#!/bin/bash
|
||||
|
||||
###############################################################################
|
||||
# SmartSolTech Nginx Setup Script
|
||||
# Автоматическая настройка Nginx с симлинком
|
||||
###############################################################################
|
||||
|
||||
set -e
|
||||
|
||||
# Цвета
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "${BLUE}🌐 SmartSolTech Nginx Setup${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
|
||||
# Проверка прав root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo -e "${RED}❌ Этот скрипт должен быть запущен с правами root${NC}"
|
||||
echo " Используйте: sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Проверка наличия Nginx
|
||||
if ! command -v nginx &> /dev/null; then
|
||||
echo -e "${YELLOW}⚠️ Nginx не установлен. Установить? (y/N):${NC}"
|
||||
read -p "" -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo -e "${BLUE}📦 Установка Nginx...${NC}"
|
||||
apt update
|
||||
apt install -y nginx
|
||||
echo -e "${GREEN}✅ Nginx установлен${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Nginx требуется для продолжения${NC}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Проверка наличия конфига
|
||||
if [[ ! -f /etc/nginx/sites-available/smartsoltech ]]; then
|
||||
echo -e "${RED}❌ Файл /etc/nginx/sites-available/smartsoltech не найден${NC}"
|
||||
echo ""
|
||||
echo "Создайте его сначала:"
|
||||
echo " sudo nano /etc/nginx/sites-available/smartsoltech"
|
||||
echo ""
|
||||
echo "Или скопируйте из репозитория проекта"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${BLUE}1/5${NC} Проверка конфигурации smartsoltech..."
|
||||
if [[ -f /etc/nginx/sites-available/smartsoltech ]]; then
|
||||
echo -e "${GREEN}✅ Конфигурация найдена${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Конфигурация не найдена${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}2/5${NC} Удаление default конфигурации..."
|
||||
if [[ -L /etc/nginx/sites-enabled/default ]]; then
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
echo -e "${GREEN}✅ Default конфигурация удалена${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}ℹ️ Default конфигурация уже удалена${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}3/5${NC} Создание симлинка..."
|
||||
if [[ -L /etc/nginx/sites-enabled/smartsoltech ]]; then
|
||||
echo -e "${YELLOW}ℹ️ Симлинк уже существует, пересоздаём...${NC}"
|
||||
rm /etc/nginx/sites-enabled/smartsoltech
|
||||
fi
|
||||
|
||||
ln -s /etc/nginx/sites-available/smartsoltech /etc/nginx/sites-enabled/
|
||||
echo -e "${GREEN}✅ Симлинк создан${NC}"
|
||||
|
||||
# Проверка симлинка
|
||||
echo ""
|
||||
echo "Проверка симлинка:"
|
||||
ls -la /etc/nginx/sites-enabled/smartsoltech
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}4/5${NC} Проверка конфигурации Nginx..."
|
||||
if nginx -t; then
|
||||
echo -e "${GREEN}✅ Конфигурация Nginx корректна${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Ошибка в конфигурации Nginx${NC}"
|
||||
echo "Проверьте файл: /etc/nginx/sites-available/smartsoltech"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}5/5${NC} Перезагрузка Nginx..."
|
||||
systemctl reload nginx
|
||||
|
||||
if systemctl is-active --quiet nginx; then
|
||||
echo -e "${GREEN}✅ Nginx перезагружен и работает${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Nginx не запущен${NC}"
|
||||
echo "Проверьте статус: sudo systemctl status nginx"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "${GREEN}🎉 Nginx настроен успешно!${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "Активные конфигурации:"
|
||||
ls -la /etc/nginx/sites-enabled/
|
||||
echo ""
|
||||
echo "Проверка работы:"
|
||||
echo " curl -I http://smartsoltech.kr"
|
||||
echo " curl -I http://localhost"
|
||||
echo ""
|
||||
echo "Логи:"
|
||||
echo " sudo tail -f /var/log/nginx/smartsoltech_access.log"
|
||||
echo " sudo tail -f /var/log/nginx/smartsoltech_error.log"
|
||||
echo ""
|
||||
echo "Для получения SSL сертификата:"
|
||||
echo " sudo certbot --nginx -d smartsoltech.kr -d www.smartsoltech.kr"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user