Re: spdy без ssl
Валентин Бартенев
vbart at nginx.com
Wed Feb 13 11:28:52 UTC 2013
On Wednesday 13 February 2013 15:01:44 Михаил Монашёв wrote:
> Здравствуйте, ingeniarius.
>
> > С патчем http://nginx.org/patches/spdy/patch.spdy-62_1.3.12.txt
> > заработало!
>
> Поясните пожалуйста, у Вас SPDY заработало на 80 порту? Сорри, если
> глупость спросил.
У человека стоит haproxy, который терминирует TLS. Т.е. клиент идет
на haproxy:433, тот, в свою очередь, сообщает клиенту, что поддерживает
http и spdy поверх TLS. Если клиент выбирает http, то haproxy проксирует
уже plain http на nginx:80, а если клиент предпочитает spdy, то haproxy
проксирует spdy без шифрования на какой-то специально установленный для
этого порт, например:
listen 8033 spdy;
Никто не мешает с последним патчем включить spdy на 80-ом порту. Но
если nginx смотрит наружу, работать это с обычными клиентами не будет.
Поскольку:
а) У клиента нет нормального механизма сообщить серверу, что он хочет
работать по spdy (не по http), поэтому nginx без опции ssl, но с
опцией spdy в listen всегда ожидает spdy запрос. В TLS для этого
специально Google предложил свое расширение NPN (Next Protocol
Negotiation). [1] Его поддержка появилась в OpenSSL 1.0.1.
Chorme/Chromium можно запустить с флагом "--use-spdy=no-ssl", но
пользоваться остальным интернетом не получится, он будет на все
сервера ломиться по spdy, даже если те ожидают http.
б) На пути клиента могут быть все-возможные прокси-сервера, которые
ожидают на 80-ом порту только голый http. В этом смысле TLS в качестве
обертки для SPDY, прячет его от существующей инфраструктуры, что
позволяет работать прозрачно в большинстве случаев.
[1] http://tools.ietf.org/html/draft-agl-tls-nextprotoneg-04
--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
Подробная информация о списке рассылки nginx-ru