The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск http-сервера nginx 1.11.0

24.05.2016 21:03

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

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

  • В директивы "proxy_bind", "fastcgi_bind", "memcached_bind", "scgi_bind" и "uwsgi_bind" добавлен новый параметр "transparent", который позволяет указать нелокальный IP-адрес для использования в исходящих соединениях. Например, можно указать реальный IP клиента - "proxy_bind $remote_addr transparent" и перенаправить запрос к прокси от адреса данного клиента. Для работы рабочие процессы nginx должны выполняться с правами root, а в системе нужно специальным образом настроить маршрутизацию для прозрачного проброса;
  • Новая переменная $request_id, в которой содержится уникальный идентификатор запроса;
  • Новая переменная $proxy_protocol_port, содержащая номер клиентского сетевого порта, указанного в заголовке протокола PROXY;
  • В модуле ngx_http_realip_module добавлена переменная $realip_remote_port, содержащая номер сетевого порта клиента, с которого было инициировано соединение;
  • В директиве "map" обеспечена возможность формирования результирующего значения, комбинируя несколько переменных;
  • Добавлена проверка поддержки ядром событий EPOLLRDHUP, и при использовании механизма "epoll" включения соответствующих оптимизаций обработки соединений;
  • Для загрузки сертификатов разных типов (RSA, ECDSA) директивы "ssl_certificate" и "ssl_certificate_key" теперь можно указывать несколько раз;
  • При использовании OpenSSL 1.0.2 и новее через директиву "ssl_ecdh_curve" теперь можно указать список эллиптических кривых;
  • Для использования шифров DHE отныне необходимо указать параметры DHE при помощи директивы "ssl_dhparam";
  • В случае запроса виртуального сервера, не указанного в процессе согласования SSL-соединения, nginx теперь возвращает код "421 Misdirected Request", что улучшает совместимость с некоторыми клиентами HTTP/2, использующими клиентские сертификаты;
  • Клиенты HTTP/2 теперь могут сразу отправлять тело запроса, не дожидаясь готовности сервера принять данные. Размер используемого при этом буфера можно установить через директиву "http2_body_preread_size".


  1. Главная ссылка к новости (http://mailman.nginx.org/piper...)
  2. OpenNews: Увидел свет HTTP-сервер nginx 1.10.0
  3. OpenNews: Выпуск nginx 1.9.5 с поддержкой HTTP/2
  4. OpenNews: Выпуск nginx 1.9.11 с поддержкой динамически загружаемых модулей
  5. OpenNews: В nginx появилась поддержка балансировки UDP-соединений
  6. OpenNews: В HTTP-сервер nginx встроена поддержка JavaScript
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44483-nginx
Ключевые слова: nginx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:28, 24/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По поводу transparent. Тоесть теперь возможно прокидывать запросы с нгингса на демоны которые не понимают realip и при этом эти демоны будут видеть реальные айпи?
     
     
  • 2.2, Аноним (-), 21:30, 24/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да
     
     
  • 3.3, Аноним (-), 21:32, 24/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Отлично!
     
  • 3.12, . (?), 13:57, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    да-то да, но есть ньюанс - они и ответят на этот реальный ip, со всеми вытекающими в виде необходимости лезть в файрвол на тему socket divert или как у вас оно называется.

     
     
  • 4.13, Аноним (-), 14:21, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В таком случае было бы не плохо если бы это на простом примере показали в мане. Но нет, тратьте время, разбирайтесь сами.
     
     
  • 5.17, Аноним (-), 21:19, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В гугле забанили? https://www.kernel.org/doc/Documentation/networking/tproxy.txt
     
     
  • 6.20, Аноним (-), 22:40, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, но линуксом не пользуемся.
     

  • 1.4, Ivan_83 (ok), 23:10, 24/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    epoll() - пример корявого дизайна API.
     
     
  • 2.5, Аноним (-), 23:20, 24/05/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    В Linux так все, кроме разгрузки ЦПУ и возможностей сети/виртуализации.
     
     
  • 3.10, Аноним (-), 10:10, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот и пользуйся вантузом, BSD-шник ты наш.
     
     
  • 4.14, Ivan_83 (ok), 14:54, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Во фре kqueue() и в венде I/O completion ports сделаны удобно, как минимум к одному дескриптору для чтения и для записи можно приатачить разные указатели на данные.

    Более того, в венде фактически отдельный указатель на нужные обработчику данные можно/нужно прикреплять к каждому отдельному запросу в/в.

     
     
  • 5.16, Добрый Дохтур (?), 18:26, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Во фре kqueue() и в венде I/O completion ports сделаны удобно, как
    > минимум к одному дескриптору для чтения и для записи можно приатачить
    > разные указатели на данные.

    dup(2) и вперёд.


     
     
  • 6.18, Аноним (-), 21:34, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Очень масштабируемо.
     
  • 6.19, Вантуз (?), 22:12, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нет zero-copy
     
     
  • 7.21, КовёрСамолёт (?), 01:44, 26/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    что? какой ещё zero-copy тут?
     
  • 6.23, Ivan_83 (ok), 20:27, 26/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не удобно манаджить.
     
  • 2.15, Нанобот (ok), 18:12, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > epoll() - пример корявого дизайна API

    Верно. Единственный некорявый дизайн - в виндовс (WaitForMultipleObjects)

     

  • 1.6, Аноним (-), 00:44, 25/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какое оно имеет отношение к http-серверу?
     
     
  • 2.9, тОпор (?), 09:35, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Исторически сложившаяся маленькая ложь
     

  • 1.7, Какаянахренразница (ok), 05:15, 25/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачастили как-то релизы nginx-а...
     
     
  • 2.8, eRIC (ok), 07:38, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Зачастили как-то релизы nginx-а...

    однако :D

     
  • 2.11, Я (??), 11:17, 25/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Развиваются люди!
     

  • 1.22, Аноним (-), 19:39, 26/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поделитесь пожалуйста конфигом ipfw/pf/natd/ipdivert/setfib/etc для работы nginx 1.11.0 и proxy_bind $remote_addr transparent; под FreeBSD. Демон на который проксируем находится на локальном айпи на том же сервере где и nginx, но не умеет RealIP, по этому нужно как-то прозрачно прокинуть.
     
     
  • 2.24, Аноним (-), 00:48, 27/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Разобрались. Если кому интересно, то:

    ipfw add fwd localhost ip from АйпиДемона ПортДемона to any via ИсходящийИнтерфейс

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру