🚀 Расширена команда build-prod с автоматической настройкой nginx
Some checks failed
continuous-integration/drone/push Build is failing
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:
85
docs/NGINX_DEPLOYMENT.md
Normal file
85
docs/NGINX_DEPLOYMENT.md
Normal 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
|
||||
Reference in New Issue
Block a user