我有以下设置:
client --> AWS NLB (terminates SSL) --> nginx --> webserver
如何让Nginx通过HTTP2提供内容?在Nginx服务器配置上启用它只会导致浏览器在访问页面时下载文件。
答案 0 :(得分:1)
浏览器将ALPN作为TLS协商的一部分来决定起诉HTTP / 2协议。
当您的TLS终止在NLB进行时,它必须宣布对HTTP / 2的支持,并将未加密的HTTP / 2数据传递给Nginx。
我看不到任何暗示NLB支持设置ALPN的信息,因此不确定是否可行。您将需要询问AWS,是否在其文档中对此没有任何支持,但这本身可能会为您提供您不想要的答案。
不确定为什么要下载文件。如果直接连接到Nginx,会发生同样的事情吗?
答案 1 :(得分:0)
我最终得出的解决方案是:
client --> AWS NLB --> AWS ALB (terminates SSL) --> nginx --> webserver
诀窍是在创建时在NLB 的端口443上使用TCP! Web ui 不允许允许您之后在443上添加TCP侦听器-它要求您使用443上的TLS选项并选择用于TLS终止的证书。我使用NLB的唯一原因是它支持静态IP关联。 TCP直通ALB适用于我的用例。
由于ALB终止了TLS并且还支持HTTP / 2,因此此设置有效。