QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

NGINX 商业版添加对 HTTP/2 协议支持

  • 2015-09-22
  • 本文字数:1181 字

    阅读完需:约 4 分钟

日前,NGINX 公司宣布,其最新发布的商业版(NGINX Plus R7)已经支持 HTTP/2 协议。

HTTP/2 是目前最新的超文本传输协议标准,它在 2015 年 2 月 17 日通过,并于2015 年5 月以 RFC 7540 正式发表。相较于 HTTP 1.1,HTTP/2 提供了连接复用、HTTP 头压缩、请求 / 响应管线化等技术,能够大大降低请求延时,同时增加了服务器推送能特性。目前,主流浏览器都已经支持 HTTP/2 协议,大部分浏览器只支持基于传输层安全协议(Transport Layer Security, TLS)的 HTTP/2 协议实现。

早在一个月前,NGINX 为 NGINX 1.9.0 及以后版本提供了测试版补丁,实现对HTTP/2 协议的支持。最近发布的NGINX 商业版(NGINX Plus)已经对HTTP/2 协议完整支持。对于现有站点,如果需要增加HTTP/2 支持,对NGINX 配置文件修改非常小,同时对客户端没有感知。

NGINX Plus R7 可以同时兼容 HTTP 1.1 和 HTTP/2,这样的实现可以针对不同客户端浏览器对 HTTP 协议的支持程度,自动选择最优的访问方式。

在上图架构中,NGINX Plus 的地位相当于“HTTP/2 网关”。在前端,NGINX Plus 和客户端浏览器进行交互,如果客户端支持 HTTP/2 协议,则 NGINX Plus 就会使用 HTTP/2 协议。同时,NGINX Plus 会通过 HTTP 1.X 协议和后端应用进行交互。这样,后段应用不需要进行修改,就支持了对外提供 HTTP/2 服务。对于只支持 HTTP 1.X 协议的客户端,NGINX Plus 同样可以回退到 HTTP 1.X 协议,以提高兼容性。

由于 NGINX Plus 需要同时支持 HTTP/2 协议和 HTTP 1.X 协议,NGINX Plus 使用传输层安全协议中的下一代协议协商(Next Protocol Negotiation,NPN)扩展。当浏览器连接到 NGINX Plus 并进行传输层协议协商的时候,会提供自己支持的协议类型。如果浏览器声明自己支持 HTTP/2(提供的协议列表中包含 h2),在后续的应用层协议传输中,NGINX Plus 将使用 HTTP/2 协议。如果浏览器不支持 HTTP/2,甚至不支持 NPN 的时候,NGINX Plus 会降级到 HTTP 1.X 协议。

要在 NGINX Plus 中添加 HTTP/2 的支持,只需要在配置文件中进行简单的修改,即在 listen 命令中添加 http2 参数。需要注意的是,http2 参数必须和 ssl 参数同时出现,和大多数浏览器实现一样,NGINX Plus 中实现的 HTTP/2 协议,也是必须构建于传输层安全协议之上。一个简单的配置如下:

复制代码
server {
listen 443 ssl http2 default_server;
}

另外需要注意的是,NGINX Plus 的 HTTP/2 模块移除了对 SPDY 协议的支持。因此 NGINX 无法同时支持 HTTP/2 协议和 SPDY 协议。不过,Google 已经官方宣布将不再支持SPDY 协议,并计划于2016 年在Chrome 中移除SPDY 协议。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-09-22 19:003651

评论

发布
暂无评论
发现更多内容

直播预告 | Rust 破局:从生物信息到时序数据的奇幻漂流

TDengine

tdengine 时序数据库 数据库·

黑龙江互联网企业进行二级等保测评流程:

黑龙江陆陆信息测评部

生产管理系统(源码+讲解+演示)

深圳亥时科技

WebGL的3D展示软件的开发流程

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

LLM增强语义嵌入的模型算法综述

百度Geek说

自然语言处理 结构型模式 合成数据 #大语言模型

鸿蒙原生绘图API:从基础到高阶的绘制之旅(基础版)

莓创技术

字节跳动员工玩转 AI 的 100 种办法

火山引擎开发者社区

MES系统:制造业智能化管理与流程优化的关键

万界星空科技

制造业 生产管理系统 mes 万界星空科技 智能智造

合合信息启信慧眼发布《国央企风控合规案例白皮书》,揭秘国央企风控升级路径

合合技术团队

人工智能 算法 #大数据

创新实践分享:基于边缘智能+扣子的智能取物机器人解决方案

火山引擎开发者社区

鸿蒙用户首选项数据持久化

龙儿筝

鸿蒙

极致出海友好,融云 IM 支持消息免打扰设置时区

融云 RongCloud

巡检任务管理系统(源码+文档+讲解+演示)

深圳亥时科技

太香了!Spring 官宣接入 DeepSeek

秃头小帅oi

从 DeepSeek 看出25年前端趋势

秃头小帅oi

WebGL开发3D软件的成本

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

观测云产品更新 | 异常追踪、AI错误分析、云账号管理等优化

观测云

产品迭代

NocoBase 本周更新汇总:双因素身份认证(2FA)

NocoBase

开源 低代码 身份认证 无代码 版本更新

用扣子快速复刻 Genspark 聚合搜索功能

火山引擎开发者社区

零信任身份安全的基本原则

芯盾时代

iam 零信任

鸿蒙原生绘图API:从基础到高阶的绘制之旅(进阶版)

莓创技术

特斯联与高力国际签署战略合作协议

科技热闻

三维/3D模型如何快速查看、旋转、剖切、爆炸等?

在路上

cad cad看图 CAD看图王

CrossOver 25 重磅更新!全面升级,畅玩Mac热门游戏!

阿拉灯神丁

Mac软件 CrossOver Mac下载 Mac游戏推荐 CrossOver 24

在原生鸿蒙上开发一款绘画动画软件,然后制作动画短视频,发到 B 站会火?

莓创技术

鸿蒙WebSocket的使用竟如此简单

龙儿筝

鸿蒙

AI代码审查工具全景解析:2025年测试开发工程师必掌握的七大神器

测试人

人工智能 软件测试

基于three.js的虚拟人阴影渲染优化方案

vivo互联网技术

前端 three.js 虚拟人 web3 web3d

培训计划丨Altair 三月培训及网络研讨会计划

Altair RapidMiner

汽车 仿真 hyperworks 结构仿真 FEKO

如何通过字符串实现大数字的求和

伤感汤姆布利柏

NGINX商业版添加对HTTP/2协议支持_语言 & 开发_金灵杰_InfoQ精选文章