NGINX Plus 现在完全支持 HTTP/2

早些时候,我们发布了支持 HTTP/2 协议的 NGINX Plus R7。作为 HTTP 协议的最新标准,HTTP/2 的设计为现在的 web 应用程序带来了更高的性能和安全性。(LCTT 译注: 开源版本的 NGINX 1.95 也支持 HTTP/2 了。)

NGINX Plus 所实现的 HTTP/2 协议可与现有的网站和应用程序进行无缝衔接。只需要一点改变,不管用户选择什么样的浏览器,NGINX Plus 都能为用户同时提供 HTTP/1.x 与HTTP/2 的最佳体验。

要支持 HTTP/2 仅需通过可选的 nginx‑plus‑http2 软件包。nginx‑plusnginx‑plus‑extras 软件包支持 SPDY 协议,目前推荐用于生产站点,因为其被大多数浏览器所支持并且代码也是相当成熟了。

为什么要使用 HTTP/2?

HTTP/2 使数据传输更高效,对你的应用程序更安全。 HTTP/2 相比于 HTTP/1.x 有五个提高性能特点:

要了解更多关于 HTTP/2:

NGINX Plus 如何实现 HTTP/2

我们的 HTTP/2 实现是基于 SPDY 支持的,它已经被广泛部署(使用了 NGINX 或 NGINX Plus 的网站近 75% 都使用了 SPDY)。使用 NGINX Plus 部署 HTTP/2 时,几乎不会改变你应用程序的配置。本节将讨论 NGINX Plus如何实现对 HTTP/2 的支持。

一个 HTTP/2 网关

NGINX Plus 现在完全支持 HTTP/2

NGINX Plus 作为一个 HTTP/2 网关。它与支持 HTTP/2 的客户端 Web 浏览器用 HTTP/2 通讯,而转换 HTTP/2 请求给后端服务器通信时使用 HTTP/1.x(或者 FastCGI, SCGI, uWSGI, 等等. – 取决于你目前正在使用的协议)。

向后兼容性

NGINX Plus 现在完全支持 HTTP/2

在一段时间内,你需要同时支持 HTTP/2 和 HTTP/1.x。在撰写本文时,超过50%的用户使用的 Web 浏览器已经,但这也意味着近50%的人还没有使用。

为了同时支持 HTTP/1.x 和 HTTP/2,NGINX Plus 实现了 TLS 上的 Next Protocol Negotiation (NPN)扩展。当 Web 浏览器连接到服务器时,其将所支持的协议列表发送到服务器端。如果浏览器支持的协议列表中包括 h2 - 即 HTTP/2,NGINX Plus 将使用 HTTP/2 连接到浏览器。如果浏览器不支持 NPN 或在发送支持的协议列表中没有 h2,NGINX Plus 将继续回落到 HTTP/1.x。

转向 HTTP/2

NGINX 公司会尽可能帮助大家无缝过渡到使用 HTTP/2。本节介绍了通过对你应用进行改变来启用对 HTTP/2 支持,其中只需对 NGINX Plus 配置进行几个变化。

前提条件

使用 nginx‑plus‑http2 软件包升级到 NGINX Plus R7。注意现在还没有支持 HTTP/2 版本的 nginx‑plus‑extras 软件包。

重定向所有流量到 SSL/TLS

如果你的应用尚未使用 SSL/TLS 加密,现在启用它正是一个好的时机。加密你的应用程序可以保护你免受间谍以及来自其他中间人的攻击。一些搜索引擎甚至在搜索结果中对加密站点提高排名。下面的配置块重定向所有的普通 HTTP 请求到该网站的加密版本。

server {

listen 80;

location /{

return301 https://$host$request_uri;

}

}

启用 HTTP/2

要启用对 HTTP/2 的支持,只需将 http2 参数添加到所有的 指令中,也要包括 SSL 参数,因为浏览器不支持不加密的 HTTP/2 请求。

server {

listen 443 ssl http2 default_server;

ssl_certificate server.crt;

ssl_certificate_key server.key;

}

如果有必要,重启 NGINX Plus,例如通过运行 nginx -s reload 命令。要验证 HTTP/2 是否正常工作,你可以在 Google ChromeFirefox 中使用 “HTTP/2 and SPDY indicator” 插件来检查。

注意事项 特别感谢

NGINX 公司要感谢 DropboxAutomattic,他们是我们软件的重度使用者,并帮助我们实现 HTTP/2。他们的贡献帮助我们加速完成这个软件,我们希望你也能支持他们。

更多Nginx相关教程见以下内容

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤 使用ngx_log_if不记���特定日志

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/264cdbb73dcd1da1a4a67c67b120e04d.html