Re: Запретить использовать SPDY

Igor Sysoev igor at sysoev.ru
Wed Jan 21 14:17:47 UTC 2015


On 20 Jan 2015, at 14:28, Gena Makhomed <gmm at csdoc.com> wrote:

> On 19.01.2015 14:42, Валентин Бартенев wrote:
> 
>>>> Вопрос мой ведь в другом, можно ли обойтись иными способами?
>>> 
>>> теоретически - да, если научить nginx смотреть на имя сервера
>>> в SNI и на основании этого имени включать или выключать SPDY
>> 
>> nginx научить то можно, а клиентов кто при этом научит не ходить
>> на этот сервер по spdy?
>> 
>> С точки зрения протокола spdy, его анонс на каком-либо соединении
>> эквивалентен анонсу на всех виртуальных серверах с тем же портом,
>> чьи домены резолвятся в тот же ip, имеют тот же порт и для которых
>> валиден сертификат.  Это позволяет запрашивать эти хосты в том же,
>> уже открытом spdy-соединении, тем самым экономя хэндшейки - основной
>> смысл spdy.
>> 
>> Всё несколько сложнее, чем кажется.
> 
> Раньше было необходимо для каждого HTTPS сайта покупать отдельный IP.
> 
> Сейчас - поддержка SNI появилась уже практически во всех серверах
> и клиентах. Кроме того изменились ситуация с поисковыми машинами
> и появилась возможность получить бесплатный SSL сертификат:
> 
> http://googlewebmastercentral.blogspot.com/2014/08/https-as-ranking-signal.html
> 
> https://letsencrypt.org/
> 
> https://www.cloudflare.com/ssl
> 
> Поэтому в ближайшее время можно ожидать массовое использование SNI
> для HTTPS сайтов, в результате на одном и том же listen сокете IP:PORT
> будут десятки а то и сотни разных HTTPS-сайтов с разными сертификатами.
> 
> Соответственно - можно будет управлять включением/выключением поддержки
> протокола SPDY для каждого из этих сайтов в отдельности.
> То есть, теоретически - это сделать возможно.

Теоретичкески - невозможно.
Есть два сервера на одном listen сокете. Один со SPDY, второй - нет.
Пользователь запросил первый сервер. Браузер установил SPDY-соединение к
первому. Потом пользователь запросил второй сервер. Браузер пошлёт этот
запрос по этому же самому SPDY-соединению. Как его обработать не в рамках
SPDY-протокола? Закрыть stream? Вполне возможно, что браузер после этого
вообще перестанет работать с данным IP-адресом по SPDY.


-- 
Igor Sysoev
http://nginx.com



Подробная информация о списке рассылки nginx-ru