你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3。

NGINX最新版本,已提供对 QUIC 和 HTTP/3的支持,本文介绍一下如何安装与配置

很高兴能在一个特殊的开源存储库中发布NGINX的QUIC+HTTP/3技术预览版。这是基于IETF QUIC 草稿的预发行版软件,维护在开发分支中,与稳定分支和主线分支隔离。该版本是几个月前才启动开发的,现在已准备好进行互操作性测试、反馈和代码贡献。

使用 NGINX QUIC+HTTP/3 实现启用的演示站点可在https://quic.nginx.org/。

了解 HTTP/3 协议

在这个快节奏的世界中,超文本传输协议 (HTTP) 在二十多年里一直非常稳定。HTTP/1.1 标准于 1999 年发布,已成为 Web 应用程序和 API 无处不在的传输协议。尽管用于传输的应用程序和服务发生了巨大变化,但该协议在未来 21 年内保持不变。

此时,精明的读者可能会问,"但HTTP/2呢?这是一个很好的问题。HTTP/2 标准于 2015 年发布,并稳步采用,45% 的面向 Internet 的网站支持 HTTP/2。然而,这个统计数据掩盖了这样一个现实,就是在公共 Internet 上使用 HTTP与"最后一英里"(运行时基础结构)相比,HTTP 的使用大不相同。

现代互联网基础设施的现实是 HTTP/2 很少被端到端部署。它旨在解决在公共 Internet 上最明显的问题,其中延迟过高,并且一个 HTTP 请求的问题可能会延迟后续请求。在应用程序运行时环境中(例如,公共云或私有数据中心)延迟较低,网络可靠性极佳,直接检查 HTTP/1.1 基于文本的传输流的能力比 HTTP/2 的二进制传输流的效率更有价值。

HTTP/2 在很大程度上改善了浏览器和移动设备上的用户体验,因为它非常适合客户端和运行时基础结构的"边缘"之间的环境。此时,它通常被代理到使用 HTTP/1.1 的运行时环境中。边缘最有可能是 CDN 提供程序,或处理进入运行时环境的流量的反向代理负载均衡器。

HTTP 版本的典型混合部署

这种使用 HTTP/2 和 HTTP/1.1 来提供网站和应用程序的混合方法效果很好。那么,为什么要提出另一个新协议,HTTP/3呢?

HTTP/2 的主要创新是通过使用 TCP 作为低延时传输的通过单个HTTP连接进行多路复用以传输多个 HTTP 请求。不幸的是,TCP 具有固有的限制,限制了网站和应用程序的性能和用户体验。TCP 标准最初于 1981 年发布,作为通用传输协议非常成功。但是,当您在同一连接上多路复用多个独立请求时,它们都受该连接的可靠性影响。如果只有一个请求的数据包丢失,则所有多路复用请求将延迟,直到首先检测到丢失的数据包,然后重新传输。

HTTP/3 基于QUIC传输协议,该协议专门设计用于支持多路复用连接,而不受单个 TCP 连接。相反,QUIC 使用 UDP作为在客户端和服务器之间移动数据包的低延时传输机制,并实现发出 HTTP 请求的可靠连接。值得注意的是,QUIC 还将 TLS 作为整体组件,而不是作为 HTTP/1.1 和 HTTP/2 的附加层。

QUIC协议

QUIC 的目标是为 HTTP/3 提供高性能、高可靠性、高安全性的传输协议(尽管 QUIC 也适用于非 HTTP 流量)。从语义上讲,HTTP/3 本身与 HTTP/2 非常相似。但是,没有 HTTP 协议同时支持一个或多个 HTTP/1.1、HTTP/2 和 HTTP/3。客户端(Web 浏览器)如何知道要使用的 HTTP 版本?

版本控制问题首先出现在 HTTP/2 的引入中,HTTP/2 通过使用 TLS 握手来检测客户端和服务器是否能够通过 HTTP/2 进行通信,从而解决了该问题。这样,客户端知道如何在建立连接之前与服务器通信。但是,QUIC 使用 UDP 而不是 TCP 作为基础传输协议带来了新的挑战 - 客户端如何知道最初请求哪种类型的连接,TCP 或 UDP?该解决方案是客户端为初始 HTTP 请求建立 TCP 连接。支持 HTTP/3 的服务器的响应包括Alt-Svc 标头,用于指定它侦听 HTTP/3 流量的 UDP 端口。此外,浏览器还记住哪些站点支持 QUIC,以消除基于 Alt-Svc+ 的发现方法的开销。

NGINX QUIC+HTTP/3 预览

今天,我们宣布NGINX的官方QUIC和HTTP/3实施的初始版本,http_v3_module。这是一个技术预览,必须被认为是实验性的 - 它不是用于生产用途。在编写本文时,QUIC 标准尚未最终确定,并且此初始版本针对当前草稿的子集实现。

经过几个月的设计和开发,http_v3_module已准备好进行互操作性测试。我们也欢迎一般的反馈和代码贡献。请注意,http_v3_module在 NGINX 开源主线开发分支中不可用(也未提供 NGINX Plus 的任何版本);因为它仍然是实验性的,所以在一个专门的开发分支https://hg.nginx.org/nginx-quic。

另请注意,此 QUIC+HTTP/3 实现是全新的,与 Cloudflare 在其 quiche 项目中提供的修补程序无关。

对于熟悉 NGINX 配置的人,启用 QUIC+HTTP/3 非常简单。

server {listen 443 ssl;              # TCP listener for HTTP/1.1listen 443 http3 reuseport;  # UDP listener for QUIC+HTTP/3ssl_protocols       TLSv1.3; # QUIC requires TLS 1.3ssl_certificate     ssl/www.example.com.crt;ssl_certificate_key ssl/www.example.com.key;add_header Alt-Svc 'quic=":443"'; # Advertise that QUIC is availableadd_header QUIC-Status $quic;     # Sent when QUIC was used
}

有关从nginx-quic 存储库构建 NGINX以及建议配置的信息,请参阅README。此外,在 http_v3_module 上https://quic.nginx.org/。从这里,您可以检查您的浏览器是否已经支持QUIC,并将HTTP/3互操作性与您自己的nginx-quic 版本进行比较

鉴于 QUIC 的草稿状态,您可能需要使用开发版本或通用浏览器的最新版本来启用 QUIC 连接。

翻译来源:https://www.nginx.com/blog/introducing-technology-preview-nginx-support-for-quic-http-3/

你们公司还没使用HTTP3?赶紧来补一补,学习一下如何在Nginx上配置HTTP3。相关推荐

  1. HTTP3快来了,提前学习一下如何在Nginx中支持HTTP3.0/QUIC

    HTTP3快来了,提前学习一下如何在Nginx中支持HTTP3.0/QUIC HTTP3.0,也称作HTTP over QUIC.核心是QUIC(读音quick)协议,由Google在2015年提出的 ...

  2. Suzy找到实习了吗 | 字符串结束啦 今天学习kmp 题还没做!!!记得回来补!!!

    kmp 看完了kmp的讲解视频 还没做题,跳过了 先占坑 再来补!!!!

  3. 2022好用不亏的数码产品推荐、趁着618还没结束赶紧入

    还有不到一周的时间今年的618电商节就要结束啦!刷朋友圈也看见朋友发文表示618快结束了,但还不知道要买啥.618作为电商优惠力度最大的一个电商节,好多人都会在这个活动期间入手一些平时价格比较昂贵的商 ...

  4. 拥有无数个智能摄像头,却还没让城市睁开双眼

    智能摄像头之于智慧城市,已经成了一项必然的存在.仿佛城市里要是没有三五千个智能摄像头.张学友演唱会上没抓到过逃犯,整个城市在智慧化进度上就矮人一截一样. 从全球范围来看,通过智能摄像头观测城市运行状况 ...

  5. 在Nginx中支持HTTP3.0/QUIC

    在Nginx中支持HTTP3.0/QUIC HTTP3.0,也称作HTTP over QUIC.核心是QUIC(读音quick)协议,由Google在2015年提出的SPDY v3演化而来的新协议,传 ...

  6. 进公司两个月了还没上手项目_27个“经验证且易于上手”的赚钱在线业务创意

    进公司两个月了还没上手项目 Are you looking for online business ideas to make extra income on the side? The intern ...

  7. 37岁主管被裁,无奈降薪去小公司遭群嘲:许多人早就破产了,只是活在还没倒闭的公司里!...

    大家好,我是B哥. 有人说,程序员吃的是青春饭:在大学刚毕业的时候,可以轻轻松松找到比同龄学生化环材的同学高几倍工资的工作,薪水一般岗位高很多,很容易就实现经济自由. 中年的时候,虽然自己是公司的老员 ...

  8. 请问!退休年龄到了,社保没交够,现在职,公司还可以继续交吗?

    楼主你好,退休年龄到了,社保还没有交够,现在在职公司还可以继续交吗?一般情况下公司是不会继续教的,因为在到达法定退休年龄之前,根据劳动合同法的规定,那么劳动合同关系是属于自动解除的状态,一旦劳动合同关 ...

  9. 如果你还没入职,那么你必须看我的这个入职vlog[教你快速成长为职业人]

    首先,这篇文章是写给那些马上要步入职场或者还没步入职场的小白的. 我写这篇文章的目的,不会太多的去给你灌输离大家很遥远的什么职业规划啊一类的,我会告诉大家怎么能快速的适应环境,怎么能快速发挥自己价值, ...

最新文章

  1. C语言中的位运算和逻辑运算
  2. macbook 分屏软件
  3. 时间选择控件在不同场景下的应用
  4. 第26月第26天 Domain=AVFoundationErrorDomain Code=-11850
  5. springboot html压缩,springboot 请求响应压缩
  6. Xlua中的util脚本中的async_to_sync方法 记录
  7. android 管理activity
  8. pythondraw解释_科学网—Draw figures with Python - 高琳琳的博文
  9. Linux下elasticsearch的安装与使用
  10. Libcurl的编译_HTTP/HTTPSclient源代码演示样例
  11. Android学习之Activity生命周期
  12. SpringBoot 轻量级英文版个人博客 flame
  13. 论坛php网站模板,自适应discuz论坛门户网站模板
  14. word文档打对勾_word文档怎么打勾 word文档方框内打勾六种方法介绍
  15. 期权期货和金融衍生品学习笔记 -- 第一章引言
  16. 用Python绘制折线图(下)
  17. Excel VBA初级系列培训--课时2
  18. 项目管理——项目进度的确定
  19. OpenJudge NOI 1.8 20:反反复复
  20. 刷脸支付人工智能和商业领域进一步融合

热门文章

  1. WordPress数据库管理中五个实用的phpMyAdmin技巧
  2. 在Windows 2003 IIS 6.0中配置PHP的运行环境(图)
  3. CSS选择器速记笔记
  4. PHP生成唯一会员卡号
  5. K均值聚类关于初始聚类中心的探讨
  6. ubuntu版本号查询
  7. QuickSort 优化后的快速排序算法
  8. Linux rmdir命令:删除空目录
  9. 【深度学习】三维点云数据集总结
  10. 2012届华为上机考试题目与参考答案