nginx同时接受http1和http2

时间:2016-10-17 18:23:12

标签: nginx http2

我构建了一个在tb v45上运行的thunderbird插件,它使用nsIXMLHttpRequest和XMLHttpRequest从服务器发布和获取数据,服务器已经使用http2协议在nginx上设置。

日志

  "POST /service/v2/api HTTP/1.1" 502 1266 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 Lightning/4.7.4"

因此是一个糟糕的网关。我认为这个http设置是向后兼容的。

   listen 443 ssl http2 default_server;
   listen [::]:443 ssl http2 default_server;

如何让nginx设置接受http1或nsIXMLHttpRequest发送正确的标头,以便它使用http2?

1 个答案:

答案 0 :(得分:0)

这与标题完全无关,但是ngnix和设置

Thunderbird不喜欢http2设置上的ssl cert和ciphers,它在http1上很好,所以我不得不在nginx.conf中设置它

似乎Thunderbird不喜欢一些旧的密码,然后针对https://www.ssllabs.com/ssltest/analyze.htm进行了预检,并进行了预修改,发现握手模拟对旧密码失败了。因此,通过以下设置,我能够让Thunderbird正确使用API​​和SSL证书。在我对Qualys进行B评级之前,它现在是一个A +,一切都很完美

 ssl_prefer_server_ciphers on;
 ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;