Реліз nginx 1.16.0

Після року розробки представлена нова стабільна гілка високопродуктивного HTTP-сервера та багатопротокольного проксі-сервера nginx 1.16.0, яка увібрала зміни, накопичені в рамках основної гілки 1.15.x. Надалі всі зміни у стабільній гілці 1.16 будуть пов'язані з усуненням серйозних помилок та вразливостей. Незабаром буде сформовано основну гілку nginx 1.17, в рамках якої буде продовжено розвиток нових можливостей. Для звичайних користувачів, які не мають завдання забезпечити сумісність зі сторонніми модулями, рекомендується Використовувати основну гілку, на основі якої один раз на три місяці формуються випуски комерційного товару Nginx Plus.

Найбільш помітні покращення, додані у процесі формування основної гілки 1.15.x:

  • Додано можливість використання змінних у директивах 'ssl_certificate'І'ssl_certificate_key', що можна використовувати для динамічного завантаження сертифікатів;
  • Додано можливість завантаження SSL-сертифікатів та секретних ключів зі змінних без використання проміжних файлів;
  • У блоці «вгору за течієюреалізовано нову директивувипадковий«, з допомогою якої можна організувати балансування навантаження з випадковим вибором сервера для прокидання з'єднання;
  • У модулі ngx_stream_ssl_preread реалізовано змінну $ssl_preread_protocol,
    яка визначає максимальну версію протоколу SSL/TLS, яку підтримує клієнт. Змінна дозволяє створювати конфігурації для доступу з використанням різних протоколів з SSL та без SSL через один мережевий порт при проксуванні трафіку з використанням модулів http та stream. Наприклад, для організації доступу по SSH і HTTPS через один порт 443 за замовчуванням можна прокидати на SSH, але якщо визначена версія SSL прокидати на HTTPS.

  • У модуль upstream додано нову змінну «$upstream_bytes_sent«, яка відображає кількість байт, переданих на сервер групи;
  • У модуль потік в рамках одного сеансу додано можливість обробки кількох вхідних UDP-датаграм від клієнта;
  • У модуль stream додано директиву «proxy_requests«, що задає число датаграм, отриманих від клієнта, після досягнення якого видаляється прив'язка між клієнтом та існуючою UDP-сесією. Після отримання зазначеної кількості датаграм наступна датаграма, отримана від того ж клієнта, розпочинає нову сесію;
  • У директиві listen з'явилася можливість вказівки діапазонів портів;
  • Додано директиву «ssl_early_data» для увімкнення режиму 0-RTT при використанні TLSv1.3, який дозволяє зберегти раніше узгоджені параметри TLS-з'єднання та знизити до 2 число RTT при відновленні раніше встановленого з'єднання;
  • Для налаштування keepalive для вихідних з'єднань (увімкнення або вимкнення опції SO_KEEPALIVE для сокетів) додано нові директиви:

    • «proxy_socket_keepalive» — конфігурує поведінку «TCP keepalive» для вихідних з'єднань до сервера, що проксується;
    • «fastcgi_socket_keepalive- конфігурує поведінку "TCP keepalive" для вихідних з'єднань до FastCGI-сервера;
    • «grpc_socket_keepalive- конфігурує поведінку "TCP keepalive" для вихідних з'єднань до gRPC-сервера;
    • «memcached_socket_keepalive- конфігурує поведінку "TCP keepalive" для вихідних з'єднань до сервера memcached;
    • «scgi_socket_keepalive- конфігурує поведінку "TCP keepalive" для вихідних з'єднань до SCGI-сервера;
    • «uwsgi_socket_keepalive- конфігурує поведінку "TCP keepalive" для вихідних з'єднань до uwsgi-сервера.
  • У директиву «limit_req» додано новий параметр «delay», що задає ліміт, після досягнення якого надмірні запити затримуються;
  • До блоку «upstream» додано нові директиви «keepalive_timeout» та «keepalive_requests» для завдання лімітів для Keepalive;
  • Оголошено застарілою директиву "ssl", на зміну якої прийшов параметр "ssl" у директиві "listen". Визначення відсутніх SSL-сертифікатів тепер проводиться на етапі тестування конфігурації при використанні в налаштуваннях директиви listen з параметром ssl;
  • При використанні директиви reset_timedout_connection при закінченні таймууту з'єднання тепер закриваються із застосуванням коду 444;
  • SSL-помилки "http request", "https proxy request", "unsupported protocol" і "version too low" тепер відображаються в лозі з рівнем "info" замість "crit";
  • Додано підтримку методу poll на системах Windows під час використання Windows Vista та новіше;
  • Забезпечено можливість використання TLSv1.3 при збиранні з бібліотекою BoringSSL, а не тільки з OpenSSL.

Джерело: opennet.ru

Додати коментар або відгук