Как включить непрерывные соединения Nginx

Вы ищете способ повысить производительность и уменьшить задержку вашего веб-сервера 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 в зависимости от требований и нагрузки вашего сервера.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.ubuntumint.com

Похожие статьи

Комментарии (0)