The OpenNET Project / Index page

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

В nginx добавлена поддержка технологии HTTP/2 Server Push

13.02.2018 11:45

В состав исходных текстов nginx принят код с реализацией механизма Server Push для протокола HTTP/2. Server Push предоставляет возможность отправки push-запросов от сервера к клиенту, семантически эквивалентные ответам на обычные запросы к серверу при обработке ресурсов с меткой preload (link rel=preload), но инициируемые со стороны сервера.

Для управления отправкой push-запросов в nginx предложена директива "http2_push". При включении настройки "http2_push_preload" данные о ресурсах, которые можно передавать через Server Push, определяются на основе анализа содержимого отправляемых клиентом HTTP-заголовков Link. Для обеспечения должного уровня защиты обрабатываются только относительные URI с полным путём к ресурсу. Ограничение на число одновременных push-запросов определяется на стороне клиента, но не может превышать значения директивы nginx "http2_max_concurrent_pushes".

Данная функциональность разрабатывается в рамках основной ветки HTTP-сервера nginx и в скором времени дебютирует в очередной версии 1.13.9.

  1. Главная ссылка к новости (https://www.reddit.com/r/linux...)
  2. OpenNews: Выпуск nginx 1.9.5 с поддержкой HTTP/2
  3. OpenNews: Выпуск HTTP-акселератора Varnish 5.0
  4. OpenNews: Выпуск http-сервера lighttpd 1.4.48
  5. OpenNews: Выпуск HTTP/TCP-балансировщика HAProxy 1.8
  6. OpenNews: Обновление HTTP-сервера H2O 2.2.3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48064-nginx
Ключевые слова: nginx, http2, push
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (52) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Ivan_83 (ok), 12:01, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ждём пушей с паролями.
     
     
  • 2.6, Аноним (-), 13:39, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ждём пушей с троянами.
     

  • 1.2, xm (ok), 12:24, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    Пользователи H2O смотрят на это снисходительно позёвывая... :-)
     
     
  • 2.4, kai3341 (ok), 13:28, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Пользователи H2O смотрят на это снисходительно позёвывая... :-)

    Наслышан про H2O. Расскажите, пожалуйста, Вашу историю успешного внедрения H2O на production.

     
     
  • 3.17, xm (ok), 14:54, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Пользователи H2O смотрят на это снисходительно позёвывая... :-)
    > Наслышан про H2O. Расскажите, пожалуйста, Вашу историю успешного внедрения H2O на production.

    Продукшн он у всех разный, но их есть у меня.

     
     
  • 4.20, xl32 (ok), 15:05, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Покажите же!
    Ссылка на страницу, где работает Ваш позёвывающий пуш, вполне подойдёт.
     
     
  • 5.21, xm (ok), 15:26, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Легко. Но не здесь, дабы не пиарить ничего не подозревающих людей.
     
     
  • 6.25, kai3341 (ok), 16:38, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Легко. Но не здесь, дабы не пиарить ничего не подозревающих людей.

    Пруфов не будет. Расходимся

     
     
  • 7.32, xm (ok), 18:39, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ну, как вариант, мой блог вовсю на H2O фигачит. Но я там пуш не включал - не вижу смысла в данном случае.
    Можете поставить, потренироваться. И на настройки CASPER внимание обратите.
     
     
  • 8.39, kai3341 (ok), 19:36, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Другой разговор Das is proof, das ist zer gut Мой опыт говорит, что упереться в... текст свёрнут, показать
     
     
  • 9.40, xm (ok), 19:51, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вы ж push хотели, а там он вообще не принципиален Хотя, может и стоит прикр... текст свёрнут, показать
     
     
  • 10.42, kai3341 (ok), 20:14, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Где push Пока что это можно провернуть на любом другом web-сервере Притом ... текст свёрнут, показать
     
     
  • 11.43, xm (ok), 20:25, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пардон, этот запрос был не ваш Мерили, но не проводили развернутое тестирование... текст свёрнут, показать
     
  • 2.5, Vsevolod Stakhov (?), 13:29, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Пользователи H2O смотрят на это снисходительно позёвывая... :-)

    Все три с половиной?


     
     
  • 3.16, xm (ok), 14:53, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я вместе с вами радуюсь вашим успехам, что, однако, не мешает отмечать и некоторое запаздывание во внедрении полезных технологий в nginx. Впрочем, это объяснимо тем, что автор H2O является активным разработчиком стандартов HTTP/2 и иже с ним, поэтому ему и флаг первопроходца в руки.
     
     
  • 4.29, Аноним (-), 18:08, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А что в ней полезного?
     
     
  • 5.34, xm (ok), 18:48, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы о push, то это ускорение отрисовки (функционирования). Иногда существенное. Надо смотреть на конкретную структуру сайта.
     
  • 3.54, Аноним (-), 02:24, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Все три с половиной?

    Да там и побольше может быть. H2O вполне реально использовать в качестве встраиваемой либы в своем проекте. Нжинкс так в принципе не умеет. И писать модуль для него - затрахаешься. Так что если надо что-то сверх отгружалки статики... упсь.

     
  • 2.9, Аноним (-), 13:46, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Пользователи H2O смотрят на это снисходительно позёвывая... :-)

    Чтобы не позёвывать, надо пользовать не в чистом виде H2O, а экстракт частей растений, обладающих тонизирующим эффектом.

     
     
  • 3.19, xm (ok), 14:58, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Пользователи H2O смотрят на это снисходительно позёвывая... :-)
    > Чтобы не позёвывать, надо пользовать не в чистом виде H2O, а экстракт
    > частей растений, обладающих тонизирующим эффектом.

    Не волнуйтесь, он крепко настоен на Ruby, что не может не бодрить :-)

     
  • 2.45, Агроном (?), 01:58, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Пользователи H2O смотрят на это снисходительно позёвывая... :-)

    Оба? А что не выспались, всю ночь реанимировали?

     

  • 1.7, Аноним (-), 13:39, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Срочно надо застолбить названия и логотипы уязвимостей pushup и pushthetempo
     
  • 1.8, erfea (ok), 13:42, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Для управления отправкой push-запросов в nginx предложена директива "http2_push".

    Не понятно, какие возможности дает эта директива (каков синтаксис).

     
     
  • 2.10, Аноним (-), 13:47, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну она предложена же. Остальное будет позже.
     
     
  • 3.50, erfea (ok), 10:34, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну она предложена же. Остальное будет позже.

    Предложено то сами не знаем что?

     
  • 2.18, xm (ok), 14:56, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >>Для управления отправкой push-запросов в nginx предложена директива "http2_push".
    > Не понятно, какие возможности дает эта директива (каков синтаксис).

    Про возможности читайте в  RFC7540 and RFC7541, а про синтаксис (и пунктуацию) вам ответит Всеволод чуть выше ;-)

     
     
  • 3.49, erfea (ok), 10:33, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    RFC - конечно, хорошее дело. Но вопрос о том как это прикручено к nginx. Управление на основе регулярных выражений, глобально на весь сайт. Сам по себе push без возможности толковой настройки правил где и как применять мало полезен.
     
     
  • 4.51, xm (ok), 10:46, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам по себе push без возможности толковой настройки правил где и как применять мало полезен.

    Совершенно согласен.

     

  • 1.11, eRIC (ok), 13:49, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Данный функционал появится в очень ближайшем времени в версии 1.13.9. Ожидайте :)
     
     
  • 2.24, Аноним (-), 16:28, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Данный функционал появится в очень ближайшем времени в версии 1.13.9. Ожидайте :)

    Nginx уже научился в приоритеты статику отдавать по протоколу http2?

    H2O websrv уже это давно умеет.

     
     
  • 3.41, xm (ok), 19:59, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Данный функционал появится в очень ближайшем времени в версии 1.13.9. Ожидайте :)
    > Nginx уже научился в приоритеты статику отдавать по протоколу http2?
    > H2O websrv уже это давно умеет.

    Кстати, спасибо что напомнили. Надо бы обкатать с оказией.
    А вы пользуете?

     
  • 2.26, Аноним (-), 16:38, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Данный функционал появится в очень ближайшем времени в версии 1.13.9. Ожидайте :)

    https://github.com/h2o/h2o/issues/421#issuecomment-130194520

     

  • 1.12, Аноним (-), 14:00, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Биткойны будут пушиться принудительно
     
  • 1.14, Ilya Indigo (ok), 14:27, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Он пушить сможет только статику?
    Пушить, например, новые сообщения пользователю от других пользователей он сможет пушить мгновенно, и без постоянного опроса, как это делается на AJAX?
    Или это не то о чём я подумал и для этого всё равно использовать nodejs будет нужно?
     
     
  • 2.15, Фффудер (?), 14:47, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вы пробовали не флудить, а читать документацию? Или за вас это должны другие сделать?
     
  • 2.22, Аноним (-), 16:19, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    prefetch readahead
     
  • 2.23, Аноним (-), 16:25, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это технология, позволяющая серверу «протолкнуть» дополнительные данные клиенту, в момент запроса основного документа. То есть в обычной ситуации запрашивает браузер html-страничку, затем обрабатывает её и приходит к выводу, что ему для корректного отображения необходимо подгрузить дополнительные файлы: стили, скрипты, изображения. После чего скачивает их и отображает конечный результат. Server push позволяет отправить дополнительные файлы уже в момент получения основного документа, и они уже будут иметься в кэше, когда они потребуются браузеру. За счёт этого возрастает скорость загрузки сайта.
     
     
  • 3.30, Аноним (-), 18:13, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Это технология, позволяющая серверу «протолкнуть» дополнительные данные клиенту,
    > в момент запроса основного документа. То есть в обычной ситуации запрашивает
    > браузер html-страничку, затем обрабатывает её и приходит к выводу, что ему
    > для корректного отображения необходимо подгрузить дополнительные файлы: стили, скрипты,
    > изображения. После чего скачивает их и отображает конечный результат. Server push
    > позволяет отправить дополнительные файлы уже в момент получения основного документа, и
    > они уже будут иметься в кэше, когда они потребуются браузеру. За
    > счёт этого возрастает скорость загрузки сайта.

    А если я отключил в браузере чужие javascript, картинки, стили и шрифты, сервер всё равно мне их будет пушить в канал?

     
     
  • 4.37, Moomintroll (ok), 18:56, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А если я отключил в браузере чужие javascript, картинки, стили и шрифты, сервер всё равно мне их будет пушить в канал?

    Отличный вопрос, между прочим!

     
  • 4.44, Аноним (-), 20:35, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Если отключить push глобально, не будет. Иначе будет.
     

  • 1.31, Лис (?), 18:29, 13/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Всё-таки хайп задавил и реализовали этот функционал.

    Не советую http2 ставить и поддаваться хайпу, чуть пакетики потеряются (актуально при перебоях в ДЦ и/или мобильной инете) у вас он начнёт лагать, а в случае заливки каких-то данных вешать соединение на минуты! Причём при открытии новой вкладки новое соединение устанавливаться не будет. В то же время http1.1 будет вполне стабильно работать.
    H2 может быть есть смысл повесить на второй айпи и пускать на него настольных клиентов когда с сетью всё хорошо.

     
     
  • 2.33, eRIC (ok), 18:46, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    а вы замеряли скорость? больше 2х лет на http2 сижу и пока нареканий не было, клиентов диназавров нет.

     
     
  • 3.35, Лис (?), 18:53, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Скорость загрузки при сравнительно большом количестве контента на сайте немного больше, но в случае нестабильной связи всё это нивелируется. Если у вас много клиентов с мобильной связью (кстати говоря это не всегда смартфоны) http2 может создавать у них проблемы. Короче технология очень нежная, сымитируйте потерю пакетов и сами всё.
     
     
  • 4.36, Лис (?), 18:53, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > и сами всё.

    увидите.

     
     
  • 5.38, eRIC (ok), 18:59, 13/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > увидите.

    хорошо, посмотрим


     
  • 3.47, анннонимм (?), 04:58, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот интересная статья на эту тему: https://www.twilio.com/blog/2017/10/http2-issues.html
     
     
  • 4.53, xm (ok), 21:47, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот интересная статья на эту тему: https://www.twilio.com/blog/2017/10/http2-issues.html

    Очень интересно, спасибо.
    Теперь понятна одна из причин появления QUIC.

     
  • 2.52, xm (ok), 21:43, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос нафига жить в таком DC, с перебоями.
     

  • 1.46, Аноним (-), 04:04, 14/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Клиент может отказать в пуше?
    Т.е. серверх хочет пушить а ему - отказ.
     
     
  • 2.48, Аноним (-), 09:10, 14/02/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    nginx будет дудосить клиента до заполнения линка :D
     
     
  • 3.55, Аноним (-), 02:28, 16/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > nginx будет дудосить клиента до заполнения линка :D

    Если клиент не дурак, отправит RST и на этом все закончится :)

     
  • 2.56, Neptus (?), 02:59, 21/02/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Для пуша нужно подключить конкретный инфо-канал (или перечень). Например на бирже операции USD-RUB или  USD-EUR, ленты новостей по темам, .. Это будут делать скрипты, которые вы  скачаете в составе странички от сайта (или сами себе напишете).
     

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



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

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