Welcome! Log In Create A New Profile

Advanced

Re: epoll_ctl: file exists ?

Maxim Dounin
May 03, 2019 06:08PM
Hello!

On Thu, May 02, 2019 at 11:53:38AM +0300, Vladimir Getmanshchuk wrote:

> Максим, если найдете свободную минуту - расскажите пожалуйста почему.
> Спасибо.

Потому что HTTP/2 не предусматривает возможности что-то делать с
соединением, в частности - connection-related-заголовки явно
запрещены стандартом[1]. А вебсокеты работают через Upgrade
соединения в другой протокол, с помощью заголовков "Upgrade:
websocket" и "Connection: upgrade". То есть вебсокеты явно
запрещены стандартом HTTP/2. И даже примечание есть:

Note: HTTP/2 purposefully does not support upgrade to another
protocol. The handshake methods described in Section 3 are
believed sufficient to negotiate the use of alternative protocols.

Если бы авторы протокола подумали головой и просто честно
определили мультиплексирование stream'ов - проблемы бы не было, и
мы бы это без особых проблем поддержали. Но нет. А поскольку
явно запрещено - то и пытаться поддерживать смысла нет.

Так что вебсокеты продолжают работать по HTTP/1.1. Что, впрочем,
представляется мне правильным - как протокол HTTP/2 оставляет
желать, и это далеко не единственная его проблема.

(Делались попытки вебсокеты таки в HTTP/2 впихнуть - в частности, в
прошлом году принят RFC 8441, "Bootstrapping WebSockets with
HTTP/2"[2]. Через 3 года после принятия стандарта HTTP/2. Но
это, скажем так, выглядит как хак, при этом малосовместимый с
существующей логикой работы через Upgrade, и имеет мало шансов
быть поддержанным.)

[1] https://tools.ietf.org/html/rfc7540#section-8.1.2.2
[2] https://tools.ietf.org/html/rfc8441

> On Tue, Apr 30, 2019 at 5:39 PM Maxim Dounin <mdounin@mdounin.ru> wrote:
>
> > Hello!
> >
> > On Tue, Apr 30, 2019 at 01:58:20PM +0500, Илья Шипицин wrote:
> >
> > > привет,
> > >
> > > насколько опасно вот такое ?
> > >
> > >
> > > 2019/04/29 21:52:39 [alert] 1714#1714: *168061675 epoll_ctl(1, 1188)
> > failed
> > > (17: File exists) while proxying upgraded connection, client:
> > > 82.114.112.115, server: market.kontur.ru, request: "GET /wsapi/
> > HTTP/2.0",
> > > upstream: "http://192.168.188.40:2339/wsapi/", host: "xxx.xxx.xxx"
> >
> > Судя по всему, имеет место попытка запихнуть вебсокеты в HTTP/2.
> > Работать - не будет.

[...]

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

epoll_ctl: file exists ?

Илья Шипицин April 30, 2019 05:00AM

Re: epoll_ctl: file exists ?

Maxim Dounin April 30, 2019 10:40AM

Re: epoll_ctl: file exists ?

Vladimir Getmanshchuk May 02, 2019 04:54AM

Re: epoll_ctl: file exists ?

Илья Шипицин May 02, 2019 05:06AM

Re: epoll_ctl: file exists ?

Maxim Dounin May 03, 2019 06:20PM

Re: epoll_ctl: file exists ?

Maxim Dounin May 03, 2019 06:08PM

Re: epoll_ctl: file exists ?

S.A.N May 04, 2019 01:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 310
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready