/
RybakovAV
/
TestProject
Обзор
Документация
Войти
/
RybakovAV
/
TestProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
docker/nginx/conf.d/dev.nginx.conf
132 строки
5 KB
Mikhail Poletaev
init
02 мар 2026, 16:11
02 мар 2026, 16:11
762fb01
Код
Авторство
О чём код?
user nginx; worker_processes auto; worker_rlimit_nofile 100000; # лимит открытых файлов для всех воркеров # Логируем только ошибки и выше (без notice/warn шума) error_log /var/log/nginx/error.log error; pid /run/nginx.pid; events { worker_connections 4096; # больше соединений для высокой нагрузки multi_accept on; # принимать сразу несколько соединений use epoll; # для Linux — эффективный event loop } http { ## # Базовые настройки ## include /etc/nginx/mime.types; default_type application/octet-stream; # log_format main # '$remote_addr - $remote_user [$time_local] ' # '"$request" $status $body_bytes_sent ' # '"$http_referer" "$http_user_agent"'; # access_log /var/log/nginx/access.log main buffer=32k flush=1s; # '"upstream_response_time":"$upstream_response_time"' # '"http_cookie":"$http_cookie",' # '"http_user_agent":"$http_user_agent",' # '"body_bytes_sent":$body_bytes_sent,' map $msec $time_msec { "~^[0-9]+\.(\d{3})$" "$1"; # берём только 3 цифры после точки default "000"; # если дробной части нет } # Преобразуем ISO8601 → DD.MM.YYYY HH:mm:ss map $time_iso8601 $time_custom { "~^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2}).*$" "$3.$2.$1 $4:$5:$6"; default $time_iso8601; } map $sent_http_content_type $content_type_only { # "~^(.*?)\s*;.*$" $1; # берём всё до точки с запятой "~^[^/]+/(.*?)(?:;.*)?$" $1; # берём всё после / и до точки с запятой default $sent_http_content_type; } map $http_user_agent $browser { "~YaBrowser/([0-9\.]+)" "YaBrowser/$1"; "~Edg/([0-9\.]+)" "Edge/$1"; # Edge на Chromium "~OPR/([0-9\.]+)" "Opera/$1"; # Opera на Chromium "~Chrome/([0-9\.]+)" "Chrome/$1"; "~Firefox/([0-9\.]+)" "Firefox/$1"; "~Safari/([0-9\.]+)" "Safari/$1"; "~MSIE ([0-9\.]+)" "IE/$1"; "~Trident/.*rv:([0-9\.]+)" "IE/$1"; # IE11 default $http_user_agent; # если ничего не совпало, берём полный User-Agent } log_format main escape=json '{' '"time_local":"$time_custom.$time_msec",' '"remote_addr":"$remote_addr",' '"request_method":"$request_method",' '"request_uri":"$request_uri",' '"status":$status,' '"request_length":$request_length,' '"body_bytes_sent":$body_bytes_sent,' '"content_type":"$content_type_only",' '"request_time":$request_time,' '"http_user_agent":"$browser"' '}'; access_log /var/log/nginx/access.log main buffer=32k flush=1s; ## # Производительность ## sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 4096; # Таймауты соединений # keepalive_timeout 60s; # время жизни keep-alive соединения # send_timeout 60s; # время ожидания отправки ответа клиенту # client_body_timeout 60s; # время ожидания тела запроса # client_header_timeout 15s; # время ожидания заголовков клиента # Сжатие gzip on; # включаем gzip глобально gzip_comp_level 5; # баланс между скоростью и степенью сжатия gzip_min_length 256; # не сжимаем мелкие ответы (<256 байт) gzip_buffers 16 16k; # буферы для сжатия (256 KB) gzip_http_version 1.1; # минимальная версия HTTP для gzip gzip_vary on; # добавляем Vary: Accept-Encoding для кэшей gzip_disable "msie6"; # отключаем для старых IE6 # Сжимаем только полезные типы (HTML, CSS, JS, JSON, XML, SVG) gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss image/svg+xml; # Управление сжатием для проксированных ответов # (any = всё подряд, но лучше ограничить) gzip_proxied expired no-cache no-store private auth; # Буферы (пример для больших ответов) client_max_body_size 20m; client_body_buffer_size 256k; large_client_header_buffers 8 16k; ## # Безопасность ## server_tokens off; # не показывать версию nginx ## # Подключение виртуальных хостов ## include /etc/nginx/conf.d/*.conf; }