阿里云 CDN HTTPS 最佳实践系列——HTTP/2

简介: 阿里云CDN HTTPS最佳实践系列文章,由CDN高防技术专家金九撰写

背景

HTTP/2 是最新的 HTTP 协议,已于2015年5月份正式发布,Chrome、 IE11、Safari 以及 Firefox 等主流浏览器已经支持 HTTP/2 协议。阿里云 CDN 在2016年7月份开始全网支持 HTTP/2,是国内第一家全网支持 HTTP/2 的 CDN 提供商。

HTTP/2 是新技术,一些底层代码库在实现时可能不完善,在一些特殊场景下可能就出问题,我们遇到过一些 android 库实现有问题,导致开启 HTTP/2 就经常访问失败,关闭 HTTP/2 就完全正常。所以对于一些 HTTP/2 有问题的域名需要关闭 HTTP/2,一些没有问题的域名不能关闭 HTTP/2。但是 Tengine(nginx)的 http2 开关参数是 ip:port 级别,不是 server 级别,也就是说如果多个域名同时使用同一个 IP,无法针对 server 来打开或者关闭。

HTTPS2_1

上面的配置中,www.a.com 和 www.b.com 使用了同一个 IP 端口, www.a.com 打开了 http2,www.b.com 没有打开 http2,但是 www.b.com 的 http2 同样也被打开了,无法关闭。

我们知道,任何公司的 IP 资源都是稀缺的,很多域名都是共用一个 IP 或者 共用几个 IP,不可能为需要关闭 HTTP/2 的域名分配一个 IP 资源,所以最核心的需求就是针对域名级别来配置 HTTP/2 开启或者关闭。

实现

先来看一看 Tengine 中 ip:port 和 server 的关系:

HTTPS2_2

多个 server 块可能会 listen 同一个 ip:port,一个 server 也可能 listen 多个 ip:port,所以 ip:port 和 server 是多对多的关系,但在 Tengine 配置块中并没有 listen 块,所以从配置文件中直观看 server 块包含了 listen,似乎 server 块比 listen 更底层,从而造成了在一个 server 块 listen 指令参数中配置了 http2 不会影响其他 server 的 http2 的假象,但其实 ip:port 更底层。

如上图所示,在 Tengine 配置解析阶段会把所有 server 块中配置的 listen ip:port 添加到一个 listening servers 表(数组)中,当 http 请求上来之后,先从这个表中查到 addr_conf 信息,在配置中 listen 指令的 flag 参数(比如: ssl、http2)都会放到这个结构中,并没有放到 server 中,所以就会导致这个 ip:port 的 listen 参数对所有关联的 server 生效。

知道了 Tengine 底层实现原理,修复起来也很容易了。我们也对 HTTP/2 开关实现了动态配置,从而HTTP/2 的开关便可以通过 CDN 控制台根据域名来设置了。如图:

HTTPS2_3

需要开启或者关闭 HTTP/2 的域名只需要在 CDN 控制台上修改一下就可以立马生效了。

以上本文内容。目前,阿里云CDN HTTPS已经全面降价,后付费HTTPS 0.05元/万次请求。为了迎接双11,预付费资源包也推出新购特惠:双十一当天30元购买1千万次HTTPS请求数资源包。欢迎大家登录双11会场进行选购。

下一篇我们将介绍CDN HTTPS 动态密钥套件,敬请关注!

目录
相关文章
|
3月前
|
缓存 前端开发 JavaScript
适合阿里云CDN分发的文件类型有哪些?
静态文件如网页、图片、视频等适合CDN分发,可提升加载速度,减轻源站压力。动态、私有或频繁变更内容则不适合。合理选择资源包,助力高效上云。
|
3月前
|
域名解析 缓存 监控
阿里云渠道商:如何排查阿里云CDN访问问题?
排查阿里云CDN访问问题需分步诊断:先检查DNS解析与CDN基础配置,再根据访问慢、内容未更新或50x错误等现象定位原因,结合ping、tracert及阿里云实时日志、节点检测等工具深度分析。掌握此流程,快速解决异常。
|
3月前
|
边缘计算 缓存 双11
阿里云渠道商:什么时候应该使用阿里云 CDN 预热?
阿里云CDN预热可将资源提前分发至边缘节点,降低首字节时间50%以上,减轻源站压力。适用于大促活动、大文件发布、定期更新、突发流量及APP资源更新等场景,提升访问速度与稳定性。首次访问求快用预热,内容更新生效用刷新。
|
3月前
|
缓存 安全 网络安全
阿里云渠道商:怎么通过阿里云CDN提高全球用户的访问体验?
阿里云CDN通过全球2800+节点、智能调度、性能优化与安全防护三大技术,实现低延迟、高稳定的内容分发,助力企业提升全球访问体验,让业务如本地般流畅。
|
3月前
|
Web App开发 缓存 监控
阿里云渠道商:如何优化阿里云 CDN 配额的使用效率?
CDN可提升网站速度,但30%企业因配置不当致带宽超支。本文分享阿里云验证的三大优化方案:精细化缓存、智能压缩与数据驱动配额调配,最高节省40%带宽成本。附实操步骤,助你高效降本。
|
3月前
|
缓存 边缘计算 双11
阿里云渠道商:适合使用CDN 预热的场景有哪些?
本文介绍CDN预热功能在大型活动、大文件分发、周期性更新等场景中的应用。通过提前将资源推送至边缘节点,可显著降低首字节时间、减轻源站压力,提升访问效率与系统稳定性。
|
3月前
|
缓存 安全 调度
阿里云渠道商:如何使用CDN加速全球业务?
阿里云CDN通过全球2800+节点,将内容分发至用户附近,实现“本地化”访问,显著降低延迟。支持智能压缩、动态缓存与HTTPS加密,兼具加速、优化与安全,助力企业高效出海,提升全球用户体验。
|
3月前
|
CDN
阿里云CDN计费价格如何收费的?一文看懂
阿里云CDN计费包含基础费用与增值服务。基础费用可选按流量、带宽峰值或月结95带宽计费,默认按流量计费;增值服务如HTTPS、QUIC、WAF、实时日志等按使用量收费,不使用不计费。支持资源包抵扣,详情参考官方文档。
539 10
|
3月前
|
缓存 监控 安全
如何设置阿里云CDN的流量阈值以避免超额费用?
在信息爆炸时代,阿里云CDN助力网站加速。合理设置CDN阈值可提升性能、节省带宽、增强安全。本文详解阈值配置步骤与监控优化,助你高效利用资源。无账号者可通过翼龙云上云,享技术支持与优惠。
|
3月前
|
缓存 前端开发 JavaScript
有哪些文件适合阿里云CDN分发?
静态、高频访问且对加载速度要求高的文件(如网页、图片、视频、下载文件)适合CDN加速,可提升性能与性价比;动态内容、私有数据、频繁更新或敏感资源则不宜使用。合理选择分发策略,优化体验并降低成本。