Обзор панели
smart-nginx — панель управления nginx: сайты, upstream, TLS, WAF, аналитика. Все настройки хранятся в БД и попадают на edge после nginx apply.
Карта разделов
| Раздел | Путь | Что настраивается |
|---|---|---|
| Дашборд | / | Сводка: сайты, сертификаты, nginx, трафик, алерты TLS |
| Графики | /charts | Timeseries, домены, upstream, статусы, география, bot scores |
| Логи | /logs | Tail и поиск access / error / WAF audit |
| WAF | /waf | ModSecurity CRS, политика, IP-правила, боты, события, патчи |
| Сайты | /sites | Домен, HTTPS, логи, маршруты, ошибки, stream, текстовый конфиг |
| Безопасность | /site-security | Per-domain: WAF, geo, auth, mTLS, cache, ACL |
| Дополнения | /site-additions | add_header, server snippet, location snippet |
| Upstream | /upstreams | Именованные пулы, баланс, health-check, drain |
| Бэкенды | /backends | Docker / IP:port / папка — server в upstream |
| Сертификаты | /certificates | Let's Encrypt HTTP-01 / DNS-01, автообновление |
| Docker | /docker | Контейнеры, discovery, wizard, drift |
| Импорт | /import | Разбор существующего nginx.conf → adopt |
| Конфиг nginx | /nginx | Preview, test, apply, ревизии, откат |
| Настройки | /settings | Режим nginx, webhooks, access guard, hardening |
| Документация | /docs | Это руководство |
Порядок: новый сайт с нуля
- Upstream — имя пула, например
api_pool. Вкладки Баланс и Health-check. - Бэкенды — добавьте target в пул: Docker
my-app:3000или10.0.0.5:8080. Probe должен быть OK. - Сертификаты — запись
example.com→ «Выпустить» (HTTP-01: DNS на edge, порт 80 открыт). - Сайты — домен
example.com, HTTPS + сертификат, маршрут/→ upstreamapi_pool. - Безопасность — по необходимости: geo, WAF preset, bot limit, ACL.
- Дополнения — по необходимости: security headers, proxy_set_header, таймауты.
- Конфиг nginx → Test → Сгенерировать и применить.
Где что настраивать (шпаргалка)
| Задача | Раздел панели |
|---|---|
| Домен, HTTPS, логи, маршруты | Сайты → модалка |
| Canary / mirror / rate limit на путь | Сайты → Маршруты → карточка location |
| Кастомные 404 / 502 | Сайты → Ошибки |
| TCP/UDP (PostgreSQL, Redis) | Сайты → Stream |
| Текстовый nginx для домена | Сайты → Конфиг |
| WAF на домен, geo, auth, cache | Безопасность → карточка домена |
| ACL path/method/header | Безопасность → ACL |
| add_header, gzip, snippet server | Дополнения → Server / Заголовки |
| proxy_set_header, таймауты location | Дополнения → Location |
| Пул server, keepalive, sticky | Upstream |
| Контейнер или IP в пуле | Бэкенды |
| Let's Encrypt, пути PEM | Сертификаты |
| Глобальная WAF-политика | WAF → Политика |
| IP allow/deny глобально | WAF → IP-правила |
| Bot rate limit глобально | WAF → Боты |
| Turnstile, CrowdSec, feeds | Настройки → Расширенная защита |
| Webhooks, access guard | Настройки → Интеграции |
| Откат конфига | Конфиг nginx → ревизии |
Полный пример nginx
upstream api_pool {
least_conn;
keepalive 32;
server my-app:3000 resolve;
}
server {
listen 80;
server_name example.com www.example.com;
location ^~ /.well-known/acme-challenge/ {
root /var/www/certbot;
}
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
http2 on;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
client_max_body_size 10m;
access_log /var/log/nginx/smart-nginx/access.json smart_nginx_json;
location / {
proxy_pass http://api_pool;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
}
}Когда нужен nginx apply
| Действие | Auto-apply? | Примечание |
|---|---|---|
| Сохранить сайт (домен, маршруты) | часто да | Зависит от полей; кнопка reload на Сайты |
| Безопасность / ACL | нет | Сохранить → явный apply |
| Дополнения | часто да | Сообщение о перезагрузке в UI |
| Upstream / бэкенды | нет | После health/drain — apply |
| WAF политика / IP rules | worker sync | Может потребовать reload edge |
| Настройки hardening | да | WAF sync + apply |