mad: рабочий конфиг nginx (прокси)

This commit is contained in:
2026-04-01 14:33:33 +03:00
parent 261b72b04a
commit 5f4769d10f

View File

@@ -1,4 +1,3 @@
# ТЕСТОВОЕ ЗАДАНИЕ РОСМОРПОРТ
# == Конфикурационный файл config/nginx/pet-clones--external-nginx.conf ==
# Внешний nginx конфиг для проксирования к контейнеру petclones-site--backend
@@ -27,11 +26,6 @@ server {
access_log /var/log/nginx/petclones.access.log;
error_log /var/log/nginx/petclones.error.log warn;
# Rate-limiting для защиты от DDoS и автоматизированных запросов
# Разрешаем максимум 100 запросов в секунду с одного IP адреса
limit_req_zone $binary_remote_addr zone=petclones_limit:10m rate=100r/s;
limit_req zone=petclones_limit burst=200 nodelay;
# ОСНОВНОЙ БЛОК ПРОКСИРОВАНИЯ
# Все запросы, кроме перехвачённых специфичными location'ами, проксируются сюда
location / {
@@ -88,13 +82,7 @@ server {
# --- КЭШИРОВАНИЕ В БРАУЗЕРЕ КЛИЕНТА ---
# Если файлы имеют хеш в названии (например: app.abc123.js), то cache-control может быть очень долгой
# "immutable" говорит браузеру что файл никогда не изменится (если изменится, то будет другой хеш)
add_header Cache-Control "public, max-age=604800, immutable"; # 7 дней в секундах (604800 = 7*24*60*60)
# ЛОГИРОВАНИЕ ВКЛЮЧЕНО для CrowdSec анализа подозрительных запросов к статике
# CrowdSec может обнаруживать попытки доступа к несуществующим файлам (признак сканирования)
# Отключаем логирование только найденных файлов (404 всё равно логируются в error_log)
access_log /var/log/nginx/petclones.access.log main buffer=32k flush=5s;
log_not_found off; # Не логируем 404 статики (слишком много шума)
add_header Cache-Control "public, max-age=2592000"; # 30 дней в секундах (30*24*60*60)
}
# КЭШИРОВАНИЕ МЕДИА ФАЙЛОВ
@@ -103,11 +91,7 @@ server {
proxy_pass http://petclones-backend;
proxy_set_header Host $host;
# Кэшируем на 30 дней (можно менять в зависимости от политики)
add_header Cache-Control "public, max-age=2592000"; # 30 дней в секундах (30*24*60*60)
# ЛОГИРОВАНИЕ ВКЛЮЧЕНО для CrowdSec анализа
# Подозрительные скачивания медиа файлов (боты, жесткие сканеры и т.п.) должны логироваться
access_log /var/log/nginx/petclones.access.log main buffer=32k flush=5s;
add_header Cache-Control "public, max-age=604800, immutable"; # 7 дней в секундах (604800 = 7*24*60*60)
}
}