Re: Вопрос про http/2 и fastcgi
Валентин Бартенев
vbart на nginx.com
Сб Апр 2 21:41:56 UTC 2016
On Saturday 02 April 2016 18:30:51 Vladislav Shabanov wrote:
> Всем добрый день.
>
> Имеем вот такой вот конфиг:
> server {
> listen 443 ssl http2;
> server_name …
> # дальше много всего про ssl_***
>
> location / {
> fastcgi_pass unix:/run/django-fcgi.sock;
> fastcgi_param SERVER_PROTOCOL $server_protocol;
> # ещё много других fastcgi_param
> fastcgi_pass_header Authorization;
> fastcgi_intercept_errors on;
> }
> ….
> }
>
> По ощущениям, после включения http/2 обращения из одного браузера стали чаще
обрабатываться последовательно. Раньше браузер открывал 6 сокетов и гонял в
них страницы + ajax запросы параллельно, до fastcgi они доходили параллельно и
исполнялись они тоже параллельно. А теперь несколько параллельно пришедших по
http/2 запросов, по ощущениям, выполняются последовательно. По крайней мере в
трассе fcgi демона, если сделать grep по сессии пользователя, я теперь вижу
много строчек подряд с одним и тем же pid.
>
> Это так или я не прав?
>
Вполне может быть.
Когда браузер открывал несколько соединений, то они могли попадать в
разные рабочие процессы.
В HTTP/2 все запросы приходят последовательно по одному соединению,
соответственно обрабатываются одним и тем же рабочим процессом и если
FastCGI демон отвечает достаточно быстро, то вполне можно наблюдать
такую картину.
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru