【问题标题】:Chrome 51.0.2704.84 not requesting HTTP/2.0, but Safari an Firefox didChrome 51.0.2704.84 不请求 HTTP/2.0,但 Safari 和 Firefox 请求了
【发布时间】:2016-10-09 14:27:15
【问题描述】:

我已经为我的 nginx 配置了 http2 服务

    worker_processes 2;
    events {
        worker_connections 1024;
        multi_accept on;
        use epoll;
    }

http {
    sendfile on;

    server {
        listen 80;
        location / {
            return 301 https://$host$request_uri;
        }
    }

    server {
        listen 443 ssl http2;

        ssl_certificate     /usr/cer/server.cer;
        ssl_certificate_key /usr/cer/server.key;

        location / {
            root   /usr/share/nginx/html;
            index  index.html;
        }
    }
}

并带有日志消息

  • 铬 51.0.2704.84
  • Safari 9.1.1
  • 火狐47.0

【问题讨论】:

标签: google-chrome firefox nginx safari http2


【解决方案1】:

原因:

为了解决这个问题,Google 开发了一个名为 SPDY 的新传输层。 SPDY 是通过 SSL/TLS 访问的,Google 开发了一种名为 Next Protocol Negotiation (NPN) 的 SSL/TLS 修改,允许客户端将其 SSL/TLS 连接从 HTTP/1 升级到 HTTP/2。主要的 Web 服务器(如 NGINX)实现了 SPDY; OpenSSL 和其他 SSL/TLS 堆栈实现了 NPN。

解决方案

从源代码重新编译 NGINX 并使用带有 OpenSSL 1.0.2 的私有构建

【讨论】:

    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多