此次主要给大家带来的是cloudfront与websocket协议的结合,经过我cloudfront单个账号的免费额度是1T,基本上可以满足使用。AWS的实力不用质疑,本人实际测试下来,延时、速度等等指标都是很惊艳的。

一、背景介绍

官方文档:https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/distribution-working-with.websockets.html

CloudFront 本身全局支持 WebSocket 连接,无需额外配置。我们配置的CloudFront 分配都具有内置 WebSocket 协议支持。

但是,需要注意补充一个配置,在源请求策略中添加如下标头:

  • Sec-WebSocket-Key
  • Sec-WebSocket-Version
  • Sec-WebSocket-Protocol
  • Sec-WebSocket-Accept
  • Sec-WebSocket-Extensions

从而避免在使用 WebSocket 时出现与压缩相关的意外问题。

二、具体的操作(重点讲特殊的部分,其余的配置,可以查看文末,博主之前写的详细流程)

首先做好需要加速网站(源站)的配置,并进行测试,确保源站的websocket路径可以正常连接、接收访问。这一步很重要,假如源站就有问题,我们后期定位问题会很麻烦。因此,在配置之前,请务必做好源站服务状态的确认。

2.1 配置源站

输入域名以及端口,cloudfront支持非标端口,也就是可以借助cloudfront将非标端口转化为80 443。

2.2 行为配置,其中源请求策略,需要独立创建。

2.3 其余的配置过程参考:

本文关联的错误代码:

failed to accept conn | websocket failed to handshake

failed to accept conn | not a valid websocket handshake

当发生错误时,首先检查源站状态,如源站访问正常,建议参考本文,进行配置的详细检查,祝配置顺遂。

本站点维护了一个每日更新的中文油管博主的排行榜,欢迎点击选择自己感兴趣的博主。

https://chuizi.tech/ytrank/

最后修改日期: 2023年10月12日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。