Я хочу развернуть SPDY, но использую маршрутизацию Amazon ELB TCP. ELB также обеспечивает безопасное соединение для нас. Как это можно настроить со стороны пристани?
К сожалению, ответ таков: нельзя. Сегодня, чтобы развернуть SPDY, ваш сервер завершения TLS (который в данном случае является ELB) должен иметь возможность согласовывать SPDY через TLS «Согласование следующего протокола» (NPN). NPN является расширением TLS и требует последней версии OpenSSL или других библиотек. ELB не поддерживает согласование NPN.
Решение состоит в том, чтобы проксировать весь поток TCP через ELB на сервер приложений, который затем может обрабатывать рукопожатие NPN и TLS. Jetty может это сделать, или вы можете использовать такой инструмент, как HAProxy, который теперь поддерживает NPN: http://www.igvita.com/2012/10/31/simple-spdy-and-npn-negotiation-with-haproxy/
SPDY теперь поддерживается на ELB с использованием proxy_protocol.
Однако это немного сложно настроить, вам нужно добавить политику ProxyProtocol в свой ELB и установить слушателей на TCP 443 -> TCP 443
Это передаст соединение (вместе с заголовком прокси-протокола) через ELB на ваши серверы без изменений.
Nginx только что добавил поддержку прокси-протокола в версии 1.5.12, поэтому я просто слушаю следующее:
прослушать 443 ssl proxy_protocol spdy
Затем установите real_ip на переданный ip proxy_protocol и вуаля, SPDY за ELB.
Я должен упомянуть, что это означает, что вы декодируете сертификаты SSL на своем веб-сервере, а не используете ELB, как это было бы со слушателями HTTPS. Но для меня это нормально.
Было бы замечательно, если бы Amazon мог добавить улучшенные элементы управления для добавления политик с помощью веб-интерфейса, поскольку делать это через командную строку - это боль.
https://forums.aws.amazon.com/thread.jspa?threadID=90109&start=25&tstart=0