🚀 Расширена команда build-prod с автоматической настройкой nginx
Some checks failed
continuous-integration/drone/push Build is failing

 Новые возможности:
- build-prod теперь проверяет и устанавливает nginx + certbot
- Автоматическая настройка проксирования порта 80 → 3000 (frontend)
- Настройка маршрутизации API/admin → порт 8000 (backend)
- SSL конфигурация с современными стандартами безопасности

🔧 Новые команды:
- make build-prod - сборка + nginx настройка
- make ssl-cert - получение SSL сертификата
- make deploy-full - полное развертывание с SSL

📝 Документация:
- docs/NGINX_DEPLOYMENT.md - подробное руководство
- scripts/test-nginx-config.sh - тестовый скрипт

🌐 Маршрутизация:
- https://links.shareon.kr/ → localhost:3000 (Next.js)
- https://links.shareon.kr/api/ → localhost:8000 (Django)
- https://links.shareon.kr/admin/ → localhost:8000 (Django)

🔒 Безопасность: HTTPS редирект, HSTS, защитные заголовки
This commit is contained in:
2025-11-02 11:05:51 +09:00
parent 0963ac97b2
commit fd76f56249
4 changed files with 272 additions and 14 deletions

85
docs/NGINX_DEPLOYMENT.md Normal file
View File

@@ -0,0 +1,85 @@
# Продакшен развертывание с nginx
## Новые команды
### `make build-prod`
**Расширенная сборка для продакшена с автоматической настройкой nginx**
Команда выполняет:
1. **Сборка Docker образов** для продакшена
2. **Проверка и установка nginx** (если не установлен)
3. **Проверка и установка certbot** (если не установлен)
4. **Создание конфигурации nginx** для проксирования:
- `http://80``https://443` (редирект)
- `https://links.shareon.kr/``http://localhost:3000` (Next.js frontend)
- `https://links.shareon.kr/api/``http://localhost:8000` (Django API)
- `https://links.shareon.kr/admin/``http://localhost:8000` (Django admin)
5. **Активация конфигурации** и перезапуск nginx
### `make ssl-cert`
**Автоматическое получение SSL сертификата от Let's Encrypt**
Использует certbot для получения сертификата для доменов:
- `links.shareon.kr`
- `sharon.kr`
### `make deploy-full`
**Полное развертывание в продакшен с SSL**
Выполняет полный цикл развертывания:
1. `make build-prod` - сборка и настройка nginx
2. `make up-prod` - запуск контейнеров
3. `make migrate` - выполнение миграций БД
4. `make ssl-cert` - получение SSL сертификата
## Схема проксирования
```
Internet → nginx:443 (SSL) → localhost:3000 (Frontend)
→ localhost:8000 (API/Admin)
```
### Маршрутизация
| URL | Назначение | Порт |
|---------------------------------------|---------------------|-------|
| `https://links.shareon.kr/` | Next.js Frontend | 3000 |
| `https://links.shareon.kr/api/` | Django REST API | 8000 |
| `https://links.shareon.kr/admin/` | Django Admin | 8000 |
| `https://links.shareon.kr/static/` | Django Static files | 8000 |
| `https://links.shareon.kr/media/` | Django Media files | 8000 |
## Использование
### Первичное развертывание
```bash
make deploy-full
```
### Обновление кода
```bash
git pull
make build-prod
make up-prod
make migrate
```
### Только обновление SSL сертификата
```bash
make ssl-cert
```
## Безопасность
Nginx конфигурация включает:
- Автоматический редирект HTTP → HTTPS
- HSTS заголовки
- Защитные заголовки (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection)
- Современные SSL протоколы (TLS 1.2, TLS 1.3)
## Требования
- Ubuntu/Debian сервер
- sudo доступ для установки nginx/certbot
- Настроенные DNS записи для доменов
- Открытые порты 80 и 443