Назад | Перейти на главную страницу

Как я могу настроить SPDY с Jetty за Amazon ELB?

Я хочу развернуть 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