2015-10-16 13 views
15

HTTP/2 wird freigegeben und von all major browsers unterstützt. Es gibt Implementierungen, die in großen Webservern wie Apache und nginx versandt werden.HTTP/2-Unterstützung in Rack/Rails

Aber für uns Rubyists ist die Auswahl momentan ziemlich begrenzt, so scheint es. Es war einmal (Dez 2014), Aaron Patterson war exploring ideas für die Unterstützung von HTTP/2 in Rack 2.0, aber das ist noch nicht eingetreten. Er hat auch ein paar Zeilen mit Möglichkeiten für Puma und WEBrick gepostet. Das ist alles, was ich gefunden habe.

Meine Frage ist breit: Wenn ich an der Verwendung von HTTP/2 in einer Rails-App interessiert bin, welche Möglichkeiten gibt es, welche Funktionen von HTTP/2 enthalten sie, und sind sie alle bereit für die Produktion?

Antwort

7

Wenn Sie behaupten wollen, HTTP/2 um seiner selbst willen zu unterstützen, können Sie einfach NGinX mit HTTP/2 ausführen und ein Ruby-Backend verwenden, etwa so normal (https://www.nginx.com/blog/how-nginx-plans-to-support-http2/). Das gibt Ihnen keine HTTP/2-spezifischen Funktionen, wie das Verschieben von Assets vom Server ohne eine Client-Anfrage.

Ich glaube, es wird geben Sie die grundlegende HTTP/2-Funktion, die Sie interessieren, mehrere Anfragen pro Verbindung (kein Slow-Start) und Muxing auf einer Verbindung (nicht mehrere Verbindungen benötigen.)

Das ist nett.

+0

Danke für die Antwort. Ich werde es für jetzt akzeptieren, aber ich würde gerne andere Optionen hören - einschließlich (natürlich) etwas, das bei Heroku funktionieren würde, wenn möglich. Wenn Speicher verwendet wird, ist es möglich, auf Heroku nginx zu verwenden, aber das vereitelt den Zweck, Heroku für mich zu verwenden, da ich mich plötzlich viel mehr um Konfiguration und Bereitstellung kümmern muss. – ivanreese

+1

HTTP2 wird neue Architekturpraktiken einführen, die evaluiert und implementiert werden müssen. Lassen Sie uns Caching sagen: Sie würden aufhören, Verkettung zu tun ... –

+1

Mit Cloudflare erhalten Sie automatisch im Grunde die gleichen Vorteile wie die oben genannten mit Nginx, und können vor Heroku sitzen. Es unterstützt sogar Server-Push, allerdings nicht besonders gut in Kombination mit Rails. – Jason