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

3.2 KiB
Raw Blame History

Продакшен развертывание с nginx

Новые команды

make build-prod

Расширенная сборка для продакшена с автоматической настройкой nginx

Команда выполняет:

  1. Сборка Docker образов для продакшена
  2. Проверка и установка nginx (если не установлен)
  3. Проверка и установка certbot (если не установлен)
  4. Создание конфигурации nginx для проксирования:
    • http://80https://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

Использование

Первичное развертывание

make deploy-full

Обновление кода

git pull
make build-prod
make up-prod
make migrate

Только обновление SSL сертификата

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