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