Files
2026-etpgrf-site/config/nginx/etpgrf--internal-nginx.conf

82 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
user nginx;
worker_processes auto;
pid /var/run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
# --- ОПТИМИЗАЦИЯ ПРОИЗВОДИТЕЛЬНОСТИ ---
# sendfile: Включает копирование данных напрямую в ядре (zero-copy), минуя буфер приложения.
# Это значительно ускоряет раздачу статики и снижает нагрузку на CPU.
sendfile on;
# tcp_nopush: Работает с sendfile. Заставляет отправлять заголовки и начало файла одним пакетом.
tcp_nopush on;
# tcp_nodelay: Отключает буферизацию (алгоритм Нейгла) для keep-alive соединений.
# Данные отправляются мгновенно, интерфейс кажется более отзывчивым.
tcp_nodelay on;
# keepalive_timeout: Время (в секундах), которое соединение висит открытым для повторных запросов.
# 65 секунд — разумный баланс между скоростью и потреблением памяти.
keepalive_timeout 65;
# types_hash_max_size: Увеличивает память для таблицы MIME-типов.
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Логи направляем в стандартный вывод, чтобы Docker их видел
access_log /dev/stdout;
error_log /dev/stderr warn;
# Настройки сжатия gzip для оптимизации передачи данных (сжимать будет nginx внутри контейнера)
gzip on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_disable "msie6";
gzip_vary on;
gzip_min_length 512;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
# upstream для Gunicorn (имя сервиса из docker-compose)
upstream app_server {
server etpgrf-backend:8000;
}
server {
listen 80;
server_name localhost;
charset utf-8;
# Убираем токены версии nginx для безопасности
server_tokens off;
location / {
proxy_pass http://app_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /app/public/static_collected/;
# Кэширование на стороне браузера
expires 30d;
add_header Cache-Control "public, no-transform";
}
location /media/ {
alias /app/media/;
}
}
}