mod: защита от DoS-атак на уровне nbinx

This commit is contained in:
2026-01-22 11:26:12 +03:00
parent 2d09aef79d
commit ef8a2d27ff
2 changed files with 21 additions and 5 deletions

View File

@@ -35,7 +35,12 @@ http {
access_log /dev/stdout;
error_log /dev/stderr warn;
# Настройки сжатия gzip для оптимизации передачи данных (сжимать будет nginx внутри контейнера)
# --- ЗАЩИТА ОТ БРУТФОРСА ---
# Создаем зону в памяти, где будут храниться IP-адреса (1MB -- 16000 IP).
# rate=5r/s - разрешаем 5 запросов в секунду (мягкий лимит).
limit_req_zone $binary_remote_addr zone=one:1m rate=5r/s;
# Настройки сжатия gzip
gzip on;
gzip_proxied any;
gzip_comp_level 6;
@@ -59,8 +64,11 @@ http {
# Убираем токены версии nginx для безопасности
server_tokens off;
# Прямая раздача favicon.ico (для поисковиков и браузеров)
# Это быстрее и надежнее, чем редирект через Django
# --- ЗАЩИТА ОТ БОЛЬШИХ ЗАПРОСОВ ---
# Ограничиваем максимальный размер тела запроса (например, 1MB)
client_max_body_size 1M;
# Прямая раздача favicon.ico
location = /favicon.ico {
alias /app/public/static_collected/favicon.ico;
access_log off;
@@ -69,6 +77,10 @@ http {
}
location / {
# --- ЗАЩИТА ОТ БРУТФОРСА ---
# Применяем зону 'one', разрешаем "всплеск" до 10 запросов.
limit_req zone=one burst=10 nodelay;
proxy_pass http://app_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;