Nginx - ограничивающие запросы

{title}

Хотя Nginx ориентирован на события, и это позволяет нам оптимизировать ресурсы для обеспечения быстрого отклика и меньшего потребления ресурсов, бывают случаи, когда этого недостаточно, и таким же образом сервис начинает терпеть неудачу.
Когда это происходит, в Интернете появляется много ошибок «тайм- аута», то есть от запроса требуется много времени, пока Nginx не сможет на него ответить, и немедленное и рекомендуемое решение состоит в улучшении аппаратного обеспечения сервера, либо увеличении ОЗУ, либо лучше процессор или оба, однако это не всегда возможно.
предел
Предел, который мы можем установить, состоит в том, чтобы уменьшить объем памяти, потребляемой запросами, и уменьшить частоту их выполнения. Это достигается путем создания области, использующей сеанс, чтобы знать, кого мы будем ограничивать в ваших запросах к нашей службе Nginx .
Давайте посмотрим на следующем изображении пример того, как мы можем установить эти зоны и ограничения:

{title}


Как работает лимит?
Предыдущий пример очень прост для понимания, во-первых, в нашем HTTP-блоке мы установили зону, мы делаем это с помощью limit_req_zone, который сообщает нам, какую переменную мы собираемся установить, чтобы построить ее, в данном случае двоичный файл IP-адреса. удаленный, то есть от клиента, это то, что будет служить идентификатором или значением ключа сеанса, затем с помощью зоны мы устанавливаем пространство, которое мы выделим для этой области, и, наконец, частоту принятых запросов, в этом Дело будет один запрос в секунду.
Теперь в нашем серверном блоке с помощью limit_req мы сообщаем вам, что он будет занимать зону, которую мы установили в блоке HTTP, это позволяет нам устанавливать «бесконечное» количество зон, здесь предел - это объем памяти, который имеет оборудование, на котором размещен сервис. из Nginx . При достижении вершины запросов пользователи увидят ошибку 503 недоступного сервиса, что не позволяет другим пользователям страдать от низкой производительности.
Ключ сеанса

В качестве ключа сеанса мы можем использовать практически любое значение, однако рекомендуется использовать небольшое значение, которое может вместить в память все дополнительные запросы, чтобы умножить общее количество входящих соединений на значение размера всех сессий меньше, чем размер кеша сессии, если этого не произойдет, мы не сможем использовать максимум зон, которые мы устанавливаем, тем самым разрушая цель того, что мы строим, с ограничениями запросов.
На этом мы завершаем этот урок, поскольку видим, что идея всегда заключается в повышении производительности нашего сервиса, Nginx также предлагает нам инструменты, которые мы можем использовать, когда нашего оборудования недостаточно, то, что мы здесь объяснили, должно быть последним средством, но В таких случаях, как общие серверы, мы не можем вносить какие-либо изменения и должны обратиться за решением такого типа.

  • 0