Closed matthewharwood closed 5 years ago
Can you explain your use case? Normally this is handled outside of Node altogether. Assuming this is for a project at Uber, the conversation would relate to Uber's infrastructure. We can chat internally if you prefer.
HTTP/2 clients usually require TLS which should be terminated at the edge. In a typical scenario, a Fusion app will be deployed behind nginx, which will handle serving HTTP/2. So in general, HTTP/2 is outside the scope of Fusion itself.
Can you explain your use case?
I'm interested in the the performance between a Fusion App Server and Nginx Web Server when using HTTP/1.1 over HTTP/2.
Assuming this is for a project at Uber
Yeah it is.
So in general, HTTP/2 is outside the scope of Fusion itself.
Yeah I understand that HTTP/2 from nginx to client is the best bang for your buck. However, I'm also interested to see the difference (if any) between nginx and fusion app server, when communicating via HTTP/2. For example, if Nginx and the application are not on the same host, it's possible that usage of HTTP/2 would be more efficient thanks to its improved pipelining of requests/responses. Otherwise, I have a hunch (but have not tested) that HTTP/1.1 would be more efficient, due to the complexity of HTTP/2 and that the libraries for HTTP/2, in Node.js, haven't had the years of rigorous optimizing yet.
To both of you, thanks for being on top of this odd request.
I don't think we'll add support for HTTP/2 in Fusion itself due to the reasons outlined above, but if you're interested in benchmarking, I think you could probably find out what you're looking for by forking fusion-cli and editing entries/server-entry.js to use http2 instead of http, and passing appropriate certs.
For what it's worth, I read some recommendations from Google a while back saying that HTTP/2 push performance can be tricky, yielding entirely opposite levels of performance depending on how congested the network is. A bunch of providers like Heroku and now.sh don't even bother w/ it at the Node.js layer, and I suspect it might be for good reason.
Makes sense! Let's just close this out
fusion-cli does not support http2
Type of issue
Feature Request
Description
Inside the server-entry.js we are not using http2. I would like fusion-core to support http2
Your environment