74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# Развёртывание production сайта
|
|
|
|
## Архитектура
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ HTTPS :443 │
|
|
│ (host nginx + Let's Encrypt) │
|
|
└────────────────────┬────────────────────────────────────┘
|
|
│
|
|
┌───────────┴───────────┐
|
|
│ │
|
|
▼ ▼
|
|
┌─────────────────┐ ┌─────────────────┐
|
|
│ Next.js site │ │ BFF API │
|
|
│ localhost:3000 │ │ localhost:3001 │
|
|
│ (Docker) │ │ (Docker) │
|
|
└─────────────────┘ └─────────────────┘
|
|
```
|
|
|
|
## 1. SSL сертификат (уже установлен)
|
|
|
|
Сертификаты находятся в `/etc/letsencrypt/live/uno-click.pip-test.ru/`
|
|
|
|
## 2. Конфигурация nginx (обновлена)
|
|
|
|
Хост nginx проксирует запросы:
|
|
- `/` → Next.js на `127.0.0.1:3000`
|
|
- `/api/` → BFF на `127.0.0.1:3001`
|
|
- `/files/` → MinIO на `127.0.0.1:9000`
|
|
|
|
## 3. Запуск через docker-compose
|
|
|
|
```bash
|
|
cd /opt/uno-click
|
|
|
|
# Пересоберите образ site
|
|
docker compose build site
|
|
|
|
# Запустите все сервисы
|
|
docker compose up -d
|
|
```
|
|
|
|
## 4. Проверка
|
|
|
|
- Сайт: https://uno-click.pip-test.ru/
|
|
- BFF API: https://uno-click.pip-test.ru/api/health
|
|
|
|
## 5. Логи
|
|
|
|
```bash
|
|
# Все сервисы
|
|
docker compose logs -f
|
|
|
|
# Конкретный сервис
|
|
docker compose logs -f site
|
|
docker compose logs -f bff
|
|
```
|
|
|
|
## 6. Обновление
|
|
|
|
```bash
|
|
# Пересобрать и перезапустить site
|
|
docker compose build site
|
|
docker compose up -d site
|
|
```
|
|
|
|
## CSRF защита
|
|
|
|
Используется автоматическая CSRF защита через:
|
|
- **SameSite=Lax** cookie — браузер автоматически блокирует cross-site запросы
|
|
- Cookie автоматически отправляются с same-origin запросами
|
|
- Не нужно вручную передавать `x-csrf-token` в заголовках
|