mad: рабочий конфиг nginx (прокси)
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
# ТЕСТОВОЕ ЗАДАНИЕ РОСМОРПОРТ
|
|
||||||
# == Конфикурационный файл config/nginx/pet-clones--external-nginx.conf ==
|
# == Конфикурационный файл config/nginx/pet-clones--external-nginx.conf ==
|
||||||
|
|
||||||
# Внешний nginx конфиг для проксирования к контейнеру petclones-site--backend
|
# Внешний nginx конфиг для проксирования к контейнеру petclones-site--backend
|
||||||
@@ -27,11 +26,6 @@ server {
|
|||||||
access_log /var/log/nginx/petclones.access.log;
|
access_log /var/log/nginx/petclones.access.log;
|
||||||
error_log /var/log/nginx/petclones.error.log warn;
|
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'ами, проксируются сюда
|
||||||
location / {
|
location / {
|
||||||
@@ -88,13 +82,7 @@ server {
|
|||||||
# --- КЭШИРОВАНИЕ В БРАУЗЕРЕ КЛИЕНТА ---
|
# --- КЭШИРОВАНИЕ В БРАУЗЕРЕ КЛИЕНТА ---
|
||||||
# Если файлы имеют хеш в названии (например: app.abc123.js), то cache-control может быть очень долгой
|
# Если файлы имеют хеш в названии (например: app.abc123.js), то cache-control может быть очень долгой
|
||||||
# "immutable" говорит браузеру что файл никогда не изменится (если изменится, то будет другой хеш)
|
# "immutable" говорит браузеру что файл никогда не изменится (если изменится, то будет другой хеш)
|
||||||
add_header Cache-Control "public, max-age=604800, immutable"; # 7 дней в секундах (604800 = 7*24*60*60)
|
add_header Cache-Control "public, max-age=2592000"; # 30 дней в секундах (30*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 статики (слишком много шума)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# КЭШИРОВАНИЕ МЕДИА ФАЙЛОВ
|
# КЭШИРОВАНИЕ МЕДИА ФАЙЛОВ
|
||||||
@@ -103,11 +91,7 @@ server {
|
|||||||
proxy_pass http://petclones-backend;
|
proxy_pass http://petclones-backend;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
# Кэшируем на 30 дней (можно менять в зависимости от политики)
|
# Кэшируем на 30 дней (можно менять в зависимости от политики)
|
||||||
add_header Cache-Control "public, max-age=2592000"; # 30 дней в секундах (30*24*60*60)
|
add_header Cache-Control "public, max-age=604800, immutable"; # 7 дней в секундах (604800 = 7*24*60*60)
|
||||||
|
|
||||||
# ЛОГИРОВАНИЕ ВКЛЮЧЕНО для CrowdSec анализа
|
|
||||||
# Подозрительные скачивания медиа файлов (боты, жесткие сканеры и т.п.) должны логироваться
|
|
||||||
access_log /var/log/nginx/petclones.access.log main buffer=32k flush=5s;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,4 +119,4 @@ server {
|
|||||||
# ТАКЖЕ НЕ ЗАБУДЬ:
|
# ТАКЖЕ НЕ ЗАБУДЬ:
|
||||||
# 1. Установи certbot: sudo apt-get install certbot python3-certbot-nginx
|
# 1. Установи certbot: sudo apt-get install certbot python3-certbot-nginx
|
||||||
# 2. Получи сертификат: sudo certbot certonly --standalone -d pet-clones.cube2.ru
|
# 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