nginx 1.19.5

Теги

Nginx — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах. Nginx позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями. 

Сформирован выпуск основной ветки nginx 1.19.5, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.18 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей). 

Основные изменения:

  • Добавлена новая опция командной строки "-e", позволяющая указать альтернативный файл для записи лога ошибок, который будет использоваться вместо лога, заданного в настройках. Вместо имени файла можно указать специальное значение stderr.
  • При сборке разных модулей-дополнений теперь можно использовать общие исходные файлы.
  • Исправлены ошибки, связанные с работой фильтров тела сообщений, закрытием соединений SSL и возникновением ошибки "upstream sent frame for closed stream" при работе с бэкендами gRPC.

Содержит модуль географической классификации клиентов по IP-адресу. В его основу входит база данных соответствия IP-адресов географическому региону, представленная в виде radix tree (сжатое префиксное дерево) в оперативной памяти. nginx предварительно распределяет первые несколько уровней дерева таким образом, чтобы они занимали ровно 1 страницу памяти.

Это гарантирует, что при поиске IP-адреса для первых нескольких узлов при трансляции адреса всегда найдётся запись в TLB. 


В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов. Полученные от клиента данные разбираются с помощью конечного автомата. Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией.