2015-10-16 7 views
15

HTTP/2 освобождается и поддерживается all major browsers. Есть реализация доставки на крупных веб-серверах, таких как Apache и nginx.Поддержка HTTP/2 в стойке/рельсах

Но для нас, рубистов, выбор в настоящее время весьма ограничен, кажется. Когда-то (декабрь 2014 года) Аарон Паттерсон был exploring ideas для поддержки HTTP/2 в стойке 2.0, но это еще не материализовалось. Он также опубликовал несколько советов с возможностями для Puma и WEBrick. Это все, что мне удалось найти.

Мой вопрос в целом: если меня интересует использование HTTP/2 в приложении Rails, какие существуют опции, какие функции HTTP/2 включают в себя и какие из них готовы для производства?

ответ

7

Если вы хотите получить поддержку HTTP/2 самостоятельно, вы можете просто запустить NGinX с помощью HTTP/2 и использовать бэкэнд Ruby примерно как обычно (https://www.nginx.com/blog/how-nginx-plans-to-support-http2/). Это не даст вам HTTP/2-специфических функций, таких как толкание активов с сервера без запроса клиента.

Я считаю, что будет дать вам основную HTTP/2 функции вы заботитесь о, несколько запросов на соединение (без медленного старта) и мультеплексировать на связи (не требуется несколько соединений.)

Так что хорошо.

+0

Спасибо за ответ. Я соглашусь на это, но я бы хотел услышать другие варианты - в том числе (конечно) что-то, что могло бы работать на Heroku, если это возможно. Если память работает, можно запустить nginx на Heroku, но это побеждает цель использования Heroku для меня, так как мне внезапно приходится беспокоиться о настройке и развертывании. – ivanreese

+1

HTTP2 принесет новый набор архитектурных практик, которые необходимо будет оценить и реализовать. Скажем, кеширование: вы хотели бы прекратить делать конкатенацию ... –

+1

Использование Cloudflare автоматически обеспечит вам в основном те же преимущества, что и упомянутые выше с nginx, и может сидеть перед Heroku. Он даже поддерживает перенаправление сервера, хотя и не очень хорошо сочетается с Rails. – Jason