我使用nginx作为后端web服务器前面的反向ssl代理,它能够执行HTTP / 2.0。
我注意到nginx通过HTTP / 1.1而不是HTTP / 2.0代理请求到后端服务器。 是否有可能告诉nginx使用未encryption的HTTP / 2.0连接? 这会提高性能吗?
find这个: https : //trac.nginx.org/nginx/ticket/923
在可预见的将来,没有计划在代理模块中实现HTTP / 2支持
从票中引用的邮件摘录:
实现它几乎是没有意义的,因为HTTP / 2的主要好处是它允许在单个连接内复用多个请求,因此[几乎]消除了对最大请求数量的限制 – 并且在与你自己的后端。 而且,使用HTTP / 2作为后端时,情况甚至会变得更糟,因为使用单个TCP连接而不是多个连接。
可悲的是nginx不支持代理到http / 2后端服务器,引用从https://www.nginx.com/blog/http2-module-nginx/#QandA
问:你是否也支持上游端的HTTP / 2,或只支持客户端的HTTP / 2?
答:目前,我们只支持客户端的HTTP / 2。 您不能使用proxy_passconfigurationHTTP / 2。 [编辑 – 在这篇文章的原始版本,这句话被错误地转录为“您可以使用proxy_passconfigurationHTTP / 2”。对于可能造成的任何混淆,我们深表歉意。]
但是后端的HTTP / 2有什么意义呢? 因为从基准testing中可以看出,对于低延迟networking(如上游连接),HTTP / 2没有太多好处。
另外,在NGINX中你有Keepalive模块,你可以configuration一个Keepalivecaching。 HTTP / 2的主要性能好处是消除了额外的握手,但是如果您已经使用Keepalivecaching,那么在上游端不需要HTTP / 2。