mad: рабочий конфиг nginx (прокси)
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,4 +119,4 @@ server {
|
||||
# ТАКЖЕ НЕ ЗАБУДЬ:
|
||||
# 1. Установи certbot: sudo apt-get install certbot python3-certbot-nginx
|
||||
# 2. Получи сертификат: sudo certbot certonly --standalone -d pet-clones.cube2.ru
|
||||
# 3. Перезагрузи nginx: sudo systemctl restart nginx
|
||||
# 3. Перезагрузи nginx: sudo systemctl restart nginx
|
||||
Reference in New Issue
Block a user