6 лучших практик для оптимизации производительности Nginx

Настройка 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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии