Настройка worker_processes
Архитектура главного и рабочих процессов Nginx объясняется следующим образом: «nginx имеет один главный процесс и несколько рабочих процессов. Основной задачей главного процесса является чтение и оценка конфигурации, а также поддержка рабочих процессов. Рабочие процессы выполняют фактическую обработку запросов. nginx использует модель, основанную на событиях, и механизмы, зависящие от ОС, для эффективного распределения запросов между рабочими процессами.»
Другими словами, worker_processes сообщает вашему виртуальному серверу, сколько ядер назначено каждому процессору, чтобы Nginx мог оптимально управлять одновременными запросами. Путь конфигурации Nginx по умолчанию следующий: /etc/nginx/nginx.conf
Чтобы узнать, сколько процессоров установлено на вашем веб-сервере, выполните следующую команду.
grep processor /proc/cpuinfo | wc -l
В данном случае выходное число показывает 1 ядро CPU.
Обычно принято запускать 1 рабочий процесс на ядро, поэтому в данном случае для наибольшей производительности в конфигурационном файле Nginx следует установить значение рабочих процессов равным 1.
worker_processes 1;
Максимальное количество рабочих соединений (worker_connections)
Worker connections указывает рабочим процессам, сколько клиентов может одновременно обслуживать Nginx. По умолчанию это значение равно 768, но важно учитывать, что каждый браузер обычно открывает как минимум 2 соединения с сервером. Максимальное число рабочих соединений — 1024, и лучше всего использовать это значение, чтобы получить полный потенциал от Nginx. Исходя из этого, предполагая 1 ядро для каждого рабочего процесса, установка worker_connections в 1024 означает, что Nginx может обслуживать 1024 клиента в секунду.
Включите сжатие Gzip
Gzip — это программное приложение, используемое для сжатия и распаковки файлов. Большинство серверов и клиентов сегодня поддерживают gzip. Когда браузер, поддерживающий gzip, запрашивает ресурс, сервер сжимает ответ перед отправкой браузеру. Gzip — это отличный способ оптимизировать работу вашего сервера Nginx, чтобы сделать его еще более эффективным. Чтобы включить Gzip в среде Nginx, нужно выполнить несколько простых шагов. Согласно одному источнику: Создайте файл /etc/nginx/conf.d/gzip.conf со следующим содержанием:
gzip on;
gzip_proxied any;
gzip_types text/plain text/xml text/css application/x-javascript;
gzip_vary on;
gzip_disable «MSIE [1-6].(?!.*SV1)»;
После того, как этот файл будет создан, просто перезапустите сервер, и теперь вы будете обслуживать ресурсы сайта с gzip-сжатием.
Включите кэширование для статических файлов
Кэширование — это механизм временного хранения веб-страниц для снижения пропускной способности и повышения производительности. Когда посетитель заходит на ваш сайт, ему будет предоставлена кэшированная версия, если она не изменилась с момента последнего кэширования. В среде Nginx вы можете добавить следующие команды, чтобы указать компьютеру кэшировать статические файлы веб-страницы для ускорения доступа. По умолчанию для этого используется следующее место:
etc/nginx/sites-available/sitename
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
В этом примере все файлы .jpg, .jpeg, .png, .gif, .ico, .css и .js получают заголовок Expires с датой 365 дней в будущем от времени доступа браузера.
Отключите access_logs
Nginx записывает каждое действие в файл журнала под названием «access.log». Если вам не нужна эта информация, то лучше ее отключить, что сэкономит дополнительную обработку данных и место на жестком диске. Чтобы отключить журналы, просто напишите условие off рядом с синтаксисом access_log, как показано ниже:
access_log off;
https://medium.com/@tobidsn/6-best-practices-for-optimizing-nginx-performance-9b8f8a186766