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, защитные заголовки
85 lines
3.2 KiB
Markdown
85 lines
3.2 KiB
Markdown
# Продакшен развертывание с 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 |