Вы ищете способ повысить производительность и уменьшить задержку вашего веб-сервера NGINX? Если это так, то вы можете включить «Keepalive» соединения для повышения производительности и минимизации задержки.
В этой статье мы рассмотрим процесс включения NGINX Keepalive соединений. Кроме того, мы углубимся в понимание NGINX Keepalive и зачем его включать.
Что такое Keepalive в NGINX?
Keepalive Connections – это супергерои производительности веб-сервера! Они работают за кулисами, уменьшая задержки и ускоряя загрузку веб-страниц. Давайте разберемся в этом на простом примере.
Когда ваш веб-браузер общается с сервером по протоколу HTTP, он обычно создает новое соединение для каждого запроса и ответа. Но вот в чем загвоздка – создание и закрытие этих соединений может занимать много времени и быть неэффективным, особенно для сложных веб-страниц с большим количеством элементов.
Тут на помощь приходят Keepalive Connections! Они напоминают дружеские рукопожатия, которые сохраняют TCP-соединение между браузером и сервером открытым даже после завершения транзакции. Таким образом, в следующий раз, когда браузеру понадобится получить что-то от сервера, он может использовать это существующее соединение вместо того, чтобы устанавливать новое.
Использование Keepalive Connections повышает производительность работы в Интернете – страницы загружаются быстрее, и вам не приходится так долго ждать. Веб-сервер NGINX достаточно умный, чтобы правильно работать с Keepalive Connections, и вы можете настроить параметры таймаута в соответствии с вашими потребностями.
Включение NGINX Keepalive Connections
Чтобы включить Keepalive-соединения, необходимо решить, для кого они будут использоваться – для клиентов или для серверов. Поскольку Keepalive-соединения могут играть важную роль в производительности, снижая нагрузку на процессор и сеть, необходимую для открытия и закрытия соединений.
Здесь NGINX берет на себя ответственность, завершая клиентские соединения и устанавливая отдельные соединения с вышестоящими серверами, а также поддерживая keepalive как для клиентов, так и для серверов.
Примечание: Под вышестоящим сервером понимается группа внутренних серверов, настроенных на обработку клиентских запросов.
Поэтому, чтобы включить keepalive-соединение для клиентов или upstream-серверов, необходимо настроить файл «nginx.conf», расположенный в каталоге «/etc/nginx/», с помощью редактора nano.
sudo nano /etc/nginx/nginx.conf
После открытия конфигурационного файла необходимо решить, для кого будет поддерживаться соединение – для клиента или для upstream.
Включение keepalive-соединения для клиентской стороны в Nginx
Чтобы включить keepalive-соединение для клиентской стороны, необходимо использовать директивы «keepalive_requests» и «keepalive_timeout» в блоке http
, server
или location
файла «nginx.conf».
Здесь «keepalive_requests» определяет количество запросов, которое может сделать клиент за одно keepalive-соединение. В то время как «keepalive_timeout» определяет время, в течение которого простаивающее keepalive-соединение будет оставаться открытым.
Синтаксис использования обеих директив приведен ниже:
http { keepalive_timeout 60s; keepalive_requests 1000; }
Включение keepalive-соединений для upstream в Nginx
Как включить keepalive-соединения для upstream в Nginx?
Для включения keepalive-соединений для upstream-сервера можно использовать директиву «keepalive» в блоке upstream
, как показано ниже.
upstream UbuntuMint_upstream { keepalive 10; }
Keepalive-соединения для upstream «UbuntuMint_upstream» (группа серверов, на которые Nginx может распределять входящие запросы) будут поддерживаться в течение 10 секунд.
Здесь важно убедиться в использовании директив «proxy_http_version» и «proxy_set_header» в конфигурации.
В итоге конфигурация для upstream будет выглядеть следующим образом:
upstream UbuntuMint_upstream { server 127.0.0.1:8080; keepalive 16; } server { ... location /http/ { proxy_pass http://UbuntuMint_upstream; proxy_http_version 1.1; proxy_set_header Connection ""; ... } }
Для внутреннего сервера UbuntuMint_upstream Keepalive-соединение будет поддерживаться в течение 16 секунд.
После внесения необходимых изменений в конфигурационный файл проверим его синтаксис:
sudo nginx -t
Если ошибок в синтаксисе нет, перезагрузите NGINX для применения изменений, выполнив команду, указанную ниже:
sudo service nginx reload
Заключение
Это помогает снизить затраты на создание новых соединений для последующих запросов от того же клиента, что приводит к повышению производительности и снижению задержек.
Однако следует помнить, что включение keepalive-соединений также потребляет ресурсы сервера, поэтому необходимо установить подходящее значение таймаута keepalive в зависимости от требований и нагрузки вашего сервера.
Комментарии (0)