Cloudflare Railgun 服务器网络长链接缓存加速器简介
Cloudflare Railgun 效果很好,可以加速访客访问首字节获取时间
Railgun 使用长链接技术维持您的源服务器与 Cloudflare 网络之间的连接(不需要重复发起握手请求)
Railgun 利用类似于压缩高质量视频时使用的技术,将以前不可缓存的 Web 对象压缩高达 99.6%。这可以带来平均 200% 的额外性能提高。(不需要PHP,MYSQL重复运算)
通过长链接的维持握手及服务器端的压缩缓存技术,不单单能提供访问速度,还能缓解CC攻击带来的频繁握手及频繁请求动态资源造成的PHP或者MYSQL的性能损耗
简单的说
注意:RAILGUN原来是CLOUDFLARE为他们的商业客户和企业客户($200/月以上套餐)准备的黑科技,目前我们的 https://cdn.bnxb.com CF官方合作伙伴平台已经实现了RAILGUN技术引入,如果您需要使用RAILGUN加速及防御您的站点,可以联系我们,使用的前提是您需要有独立服务器,并愿意在服务器上安装RAILGUN套件。
以下是官方介绍:
Railgun 的能力
优化的合作伙伴通过 Railgun 可以更快地联系国际客户
Railgun 加速了每个 Cloudflare 数据中心与原始服务器之间的连接,因此无法从 Cloudflare 缓存中获得服务的请求可以非常快速地获得服务。
大约有 2/3 的对 Cloudflare 网站的请求直接从数据中心的缓存获得服务,该数据中心与上网者最接近。Cloudflare 在全球拥有多个数据中心,这意味着无论您是在班加罗尔、布里斯班、伯明翰还是波士顿,都能快速传送网页,即使真正的原始网络服务器距离数千英里。
Cloudflare 能够让网站显得似乎与上网者很近,这是加速网页浏览的关键。网站可能是在美国托管,但主要的浏览者可能在英国。借助 Cloudflare,该网站将从英国数据中心获取内容,消除了光速造成的成本高昂的延迟。
但是,对 Cloudflare 的其他 1/3 请求必须发送到原始服务器进行处理。发生这种情况是因为许多网页不可缓存。这可能是因为配置错误,更常见的原因是网页频繁更改或个性化。
例如,很难将“纽约时报”主页缓存一段时间,因为新闻不断变动,而保持最新对他们的业务至关重要。对于像 Facebook 这样的个性化网站,每个用户看到不同的页面,即使不同用户的 URL 可能相同。
Railgun 使用一系列技术来加速和缓存这些以前不可缓存的网页,这样即使必须查询原始服务器,也可以快速传送网页。这甚至适用于不断快速变化的网页(如新闻网站)或个性化内容。
Cloudflare 研究表明,尽管许多网站无法缓存,但实际上它们变化非常缓慢。例如,纽约时报的主页整天都会随着新闻报导变化,但页面的样板 HTML 其实保持相同,而且许多报导会留在头版一整天。
对于个性化网站,样板 HTML 保持相同,只有少量内容(例如某人的 Twitter 时间轴或 Facebook 新闻源)发生变化。这意味着如果可以检测到页面的不变部分并且仅传输差异,则压缩网页以进行传输的机会很大。
工作方式
当向 Cloudflare 服务器请求不在缓存中的网页时,Cloudflare 会与原始服务器建立 HTTP 连接以请求该页面。Railgun 加速和保护的就是此 HTTP 连接。
未使用 Railgun
使用 Railgun
Railgun 包含两个软件组件:Listener 和 Sender。
1、Railgun Listener 安装在您放置网站的源服务器上。它是一款小型软件,使用加密的二进制 Railgun 协议为来自 Cloudflare 的请求提供服务。因为加密性及本地运行性,因此能额外提供隐私保护能力。
2、Railgun Sender 安装在全世界所有 Cloudflare 数据中心,并与 Railgun Listener 保存连接。
当 HTTP 请求进入,必须由源服务器处理时,Cloudflare 会先确定它是否需要发往启用 Railgun 的网站。如果不是则使用标准 HTTP,但如果是,则将 HTTP 请求路由到 Railgun 发送器进行处理。
Railgun Sender 会将请求转为压缩的二进制数据块,传输给相应的 Railgun Listener。Railgun Listener 会处理该请求并向原始服务器执行 HTTP 请求。从原始服务器的角度来看,此 HTTP 连接好像直接来自 Cloudflare,但由于它来自托管合作伙伴的基础架构内部,该请求不会产生相关延迟。
Railgun 使用基于比较页面版本的新缓存机制来确定需要通过 Internet 传输给 Railgun Sender 的内容。使用这种机制, Cloudflare 通常能够实现 99.6% 压缩率(例如,100k 网页压缩至 400 字节)和超过 700% 的加速。事实上,压缩数据通常很小,使用二进制 Railgun 协议,即可将整个响应纳入单个 TCP 数据包。
通过 TLS 保护 Railgun 连接,以便无法窃听通过它们发送的请求。此连接通过凭证确保安全,因此不可能受到中间人攻击。Cloudflare 和原始服务器之间的 TCP 连接保持活动状态,以便可以将其重用于后续请求,从而消除 TCP 连接的缓慢启动。
Railgun 请求被多路复用到同一连接上,并且可以异步处理。这意味着 Railgun 能够在不阻塞的情况下处理多个并发请求,并最大限度地利用 TCP 连接,这方式能缓解一定程度上的CC类攻击