让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战
最近HTTP-over-QUIC 协议被正式命名为 HTTP/3,协议带来的最大改变是协议底层将采用UDP协议,而不再是TCP协议,这样的好处吗,就是更低时延,更好的拥塞控制,更精确的RTT时间,更高效率的多路复用...谷歌万岁,要知道现有的http/2(spdy)协议也是源于谷歌。
这么多的好处,还等什么,开搞。
boxopened整体基于的nodejs开发,通过nginx反代对外提供服务,之前通过配置,boxopened已经支持了http/2协议,但是目前nginx还不支持quic协议,于是只能想别的办法。经过一番谷歌(再次感谢伟大的谷歌)以后,发现了Caddy,一个新一代的web 服务器。caddy的官网:https://caddyserver.com/ 。caddy宣称是比nginx更人性化的web server,基于go语言开发,简单易用的配置,原生的http/2支持,自动的https证书管理....
caddy的部署有很多方式,由于boxopened整体是基于docker化的部署,所以这里caddy的部署也是基于docker部署的,好在官方提供了docker镜像(这里给caddy点个赞)。接下来就是配置了,官方文档写的简单又清楚,一看就懂。目前对quic的支持还处于实验性质,所以要开启quic,要加上-quic 标志。
下面是docker-compose.yml 中caddy服务的配置,大家可以参考下。
caddy:
image: abiosoft/caddy:0.11.1
ports:
- 80:80
- 443:443
- 80:80/udp
- 443:443/udp
volumes:
- ../../boxopened-config/caddy/www:/srv
- ../../boxopened-config/caddy/ssl:/root/.caddy
- ../../boxopened-config/caddy/logs:/wwwlogs
- ../../boxopened-config/caddy/conf/Caddyfile:/etc/Caddyfile
command: ["--conf", "/etc/Caddyfile", "--log", "stdout", "--agree", "--quic"]
caddyfile 配置
http://boxopened.com {
redir 301 {
/ https://www.boxopened.com{uri}
}
}
http://www.boxopened.com {
redir 301 {
/ https://{host}{uri}
}
}
https://www.boxopened.com {
gzip
log /wwwlogs/portal.access.log
tls /root/.caddy/fullchain.pem /root/.caddy/privkey.pem
proxy / portal:6001 {
transparent
}
}
就这么几行配置,完事儿,简单吧!
再给大家说说我中间遇到的坑,首先quic协议的底层是基于udp协议的,所以在进行docker端口配置的时候,要expose相应的udp端口,并且打开主机的防火墙配置。。。(我能说我在这上面搞到凌晨三点么。。。)
所有的一切完成后,我以为一切都ok了,又发现怎么都无法进行quic连接,反复尝试还是不行。原来chrome只支持最新的quic协议,所以更新了下caddy的版本,一些搞定!
最后展示下效果
想更直观的感受下,请戳 boxopened.com
让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战的更多相关文章
- 处理部分WordPress核心代码或功能,让你的网站更快
处理部分WordPress核心代码或功能,让你的网站更快 http://www.wpdaxue.com/speed-up-wordpress.html
- mysql DB server端,如何让读写更快
其实,我不是专业的DB管理同学,甚至算不上会了解.只是在最近的工作中,遇到了DB server端优化的契机,所以把这些手段记录下来: 通过调整这个参数的值,可以让DB更给力: 这两个参数的含义: 1. ...
- 如何让Hadoop运行得更快一些
在数据处理方面,我们发现数据输入速度一般要比的数据处理速度快很多,这种现象在大多数据领域尤为明显.随着数据不断膨胀,相应的响应时间自然要有所增加,数据处理的复杂度也在不断提高.作为一个开发者,我们自然 ...
- 零成本搭建个人博客之图床和cdn加速
本文属于零成本搭建个人博客指南系列 为什么要使用图床 博客文章中的图片资源文件一般采用本地相对/绝对路径引用,或者使用图床通过外链进行引用展示.本地引用的弊端我认为在于: 图片和博客放在同一个代码托管 ...
- 网站SEO优化如何让百度搜索引擎绝的你的网站更有抓取和收录价值呢?_孙森SEO
今天孙森SEO为大家唠唠网站到底该如何优化才会让百度搜索引擎绝的你的网站更有抓取和收录价值呢? 第一方面:网站创造高品质的内容,可以为用户提供独特的价值. 1.百度作为搜索引擎,网站内容必须满足 搜索 ...
- Google Colab——零成本玩转深度学习
前言 最近在学深度学习HyperLPR项目时,由于一直没有比较合适的设备训练深度学习的模型,所以在网上想找到提供模型训练,经过一段时间的搜索,最终发现了一个谷歌的产品--Google Colabora ...
- 使用syncthing和蒲公英异地组网零成本实现多设备实时同步
设想一个场景,如果两台电脑之间可以共享一个文件夹,其中一个增删更改其中的内容时,另一个也能同步更新,而且速度不能太慢,最好是免费的.那么syncthing就可以满足这个要求.syncthing可以实现 ...
- StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全
StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全 一.StartSSL个人证书登录申请 1.StartSSL官网: 1.官方首页:http://www.startssl.com/ 2 ...
- Oracle EBS-SQL (CST-3):检查零成本交易.sql
SELECT '零成本交易' 交易异常类型 ,msi.segment1 ...
随机推荐
- Write Combining Buffer
现代CPU使用了很多技术来降低对内存存取数据的延时,因为CPU执行的速度实在是太快了,在从内存存取数据的约120ns中,可以执行数百条指令. 其中多级的缓存架构就是为了减少这种延时,来提高CPU的利用 ...
- JZ-018-二叉树的镜像
二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 题目链接: 二叉树的镜像 代码 /** * 标题:二叉树的镜像 * 题目描述 * 操作给定的二叉树,将其变换为源二叉树的镜像. * ...
- tensorflow源码解析之framework-node
目录 什么是node node_def 关系图 涉及的文件 迭代记录 1. 什么是node TF中的计算图由节点组成,每个节点包含了一个操作,表示这个节点的作用,比如,如果一个节点的作用是做矩阵乘法, ...
- 张高兴的 Entity Framework Core 即学即用:(一)创建第一个 EF Core 应用
写在前面 Entity Framework Core (EF Core) 是 .NET 平台流行的对象关系映射(ORM)框架.虽然 .NET 平台中 ORM 框架有很多,比如 Dapper.NHibe ...
- C# 杂七杂八知识点
本文源自在工作过程中一些比较容易混淆或者理解不太清晰的知识点进行整理备忘. sealed修饰符 当sealed关键字修饰类,该类不能被继承. 当sealed关键字修饰方法的时候,该方法不能在其子类中重 ...
- 【KiCad镜像】下载与安装
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.KiCad介绍 KiCad EDA 是一款用于印刷电路板设计的开源自由软件,基于 GPLv3 开源协议. 软件包含工程项目管理.原理图设计.线 ...
- ansible 四常用模块
常用模块 Ansible默认提供了很多模块来供我们使用.在Linux中,我们可以通过 ansible-doc -l 命令查看到当前Ansible支持哪些模块,通过 ansible-doc -s [模块 ...
- Android 12(S) 图形显示系统 - 简单聊聊 SurfaceView 与 BufferQueue的关联(十三)
必读: Android 12(S) 图形显示系统 - 开篇 一.前言 前面的文章中,讲解的内容基本都是从我们提供的一个 native demo Android 12(S) 图形显示系统 - 示例应用( ...
- SVPWM实现概述
SVPWM是FOC的基础,其实现流程大致如下所示: 1. 判断合成矢量所在扇区 2. 计算相邻矢量作用时间 3. 计算各桥臂导通时间 4. 得到各相PWM占空比 5. 更新相应寄存器值 SVPWM目 ...
- Spring Cache缓存框架
一.序言 Spring Cache是Spring体系下标准化缓存框架.Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis.EhCache.Caffeine均支持.它们 ...