Files
links/docs/NGINX_DEPLOYMENT.md
Andrey K. Choi fd76f56249
Some checks failed
continuous-integration/drone/push Build is failing
🚀 Расширена команда build-prod с автоматической настройкой nginx
 Новые возможности:
- 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, защитные заголовки
2025-11-02 11:05:51 +09:00

85 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Продакшен развертывание с 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