让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

站长们应该都知道 Brotli 压缩算法吧,这是一种通用的无损压缩算法。它结合使用 LZ77 算法的一个现代变体(Lempel-Ziv 编码)、霍夫曼编码和二阶上下文建模来压缩数据,提供了与当前最佳通用压缩方法相媲美的压缩比。2015 年 9 月谷歌发布了 Brotli 压缩算法,直到现在才开始被大多数的浏览器所兼容。特别是 HTML、CSS 和 JavaScript 的常用术语,能够将数据比 gzip, bzip2, LZMA 等压缩算法的基础上进一步进行压缩,减少了数据内容的容量大小,使得网页在加载时速度更快。主流的 HTTP 服务器程序 Apache 和 Nginx 也很早就支持了 Brotli 压缩算法,明月自己在 Nginx 上用 Brotli 压缩算法也有六年多了(可参考【给 Nginx 添加谷歌 Brotli 压缩算法支持】一文)。

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

最近明月把 Brotli 压缩算法设定为了“首选”网页压缩算法,实现起来其实也很简单,只需要在nginx.conf文件里调整BrotliGzip语句先后位置即可,如下代码所示:

        brotli on;brotli_window 512k;# Brotli 使用的窗口值。默认值为 512kbrotli_comp_level 6;# 压缩水平可以是 0 到 11,默认值是 6。太高的压缩水平对性能提升并没有太大好处,因为这需要更多的 CPU 时间brotli_window 512k;# Brotli 使用的窗口值。默认值为 512kbrotli_comp_level 11;# 压缩水平可以是 0 到 11,默认值是 6。太高的压缩水平对性能提升并没有太大好处,因为这需要更多的 CPU 时间brotli_types application/dash+xml application/eot application/font application/font-sfnt application/javascript application/json application/opentype application/otf application/pkcs7-mime application/protobuf application/rss+xml application/truetype application/ttf application/vnd.apple.mpegurl application/vnd.mapbox-vector-tile application/vnd.ms-fontobject application/xhtml+xml application/xml application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-httpd-cgi application/x-javascript application/x-mpegurl application/x-opentype application/x-otf application/x-perl application/x-ttf font/eot font/opentype font/otf font/ttf image/svg+xml text/css text/csv text/javascript text/js text/plain text/richtext text/tab-separated-values text/xml text/x-component text/x-java-source text/x-script;# 指定允许进行压缩的回复类型brotli_static always;# 是否允许查找预处理好的、以 .br 结尾的压缩文件。可选值为 on、off、alwaysgzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;gzip_vary on;gzip_proxied   expired no-cache no-store private auth;gzip_disable   "MSIE [1-6]\.";

然后保存,重启 Nginx,网页载入时压缩算法选择顺序就是:Brotli=>Gzip 了,毕竟目前几乎所有的主流浏览器都已经支持 Brotli 压缩算法了嘛!

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

CloudFlare 默认是支持 Brotli 压缩算法的,只需要在 CloudFlare 后台【速度】——【优化】——【内容优化】里开启即可,如下图:

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

但是 CloudFlare 默认支持的 Brotli 压缩等级是默认 6 级的,现在的云服务器 CPU 算力完全是可以用 11 级的,更高级的压缩等级带来的好处不言而喻,网页越小自然载入速度就越快了,CloudFlare 上缓存好这些 11 级压缩过的文件就是刚需了。

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

看看这个个 CSS 文件被 Brotli 压缩后的压缩比

我们在服务器 Nginx 里调整 Brotli 压缩等级为 11 后,只需要在 CloudFlare 里【规则】——【Configuration Rules】里创建一个规则就可以让 CloudFlare 支持服务器上的 11 级 Brotli 压缩文件了:

(ends_with(http.request.uri.path, ".css")) or (ends_with(http.request.uri.path, ".js"))

CloudFlare 规则表达式(可以复制粘贴到 CloudFlare 里直接引用哦!)

然后确保如下图所示的开关选项都是“关闭”的:

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

具体就是关闭【自动 HTTPS 重写】、【Auto Minify】勾选 CSS、JS 以及【电子邮件混淆】、【Rocket Loader】、【服务器端排除】这几项,然后【部署】为第一条【Configuration Rules】规则即可。记得最后清除一下 CloudFlare 上的缓存,让 CloudFlare 节点 IP 重新回服务器获得 Brotli 压缩等级 11 的压缩文件。

让 CloudFlare 支持 Brotli 压缩算法 11 级压缩比,更节流!

最后,可以到【Check Gzip/Brotli Compression】里输入网页或者网页 CSS、JS 文件地址进行 Brotli 压缩比结果测试了。

CloudFlare 免费版在处理小文件的缓存时候国内延迟是最低的,所以 Brotli 压缩的越小就越好,国内站推荐大家试试,具体效果可能会有差异,但境外测速网站评分一定会有上涨的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11296.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记-跨域方式实现原理

websocket Websocket是HTML5的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。WebSocket和HTTP都是应用层协议,都基于 TCP 协议。但是 WebSocket 是一种双向通信协议,在建立连接之后&#xff…

51-50 两万字长文解读ControlNet论文和代码,以及自定义模型训练和图片精确控制生成实验

今天咱们来看 ICCV2023 最佳论文Adding Conditional Control to Text-to-Image Diffusion Models,又称为ControlNet。提到图像生成Finetuning工程方法,有Textual inversion、DreamBooth、LoRA、T2I-Adapter以及ControlNet,其中最著名的当属Co…

Jupyter配置

一、修改Jupyter打开界面 (1)打开【Anaconda Prompt】,输入【jupyter notebook --generate-config】命令 从运行结果可知【jupyter_notebook_config.py】的位置 (2)使用【记事本】打开 找到# c.NotebookApp.noteb…

同城预约上门服务家政小程序

基于Thinkphp和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统,用户端、服务端、门店端各端相互依赖又相互独立,支持选择项目、选择服务人员、选择门店多种下单方式,支持上门服务和到店核销两种服务方式,支持自营…

瞬息全宇宙——平行宇宙终极教程,手把手教你做出百万点赞视频

最近一种叫“瞬息全宇宙”的视频火了,抖音一期视频百万赞,各个博主视频都在带瞬息全宇宙这个标签,于是就有很多朋友催我出教程了,在琢磨了几天之后,终于整出来了 教程包含了插件的安装,界面的讲解&#xff…

C语言 | Leetcode C语言题解之第80题删除有序数组中的重复项II

题目&#xff1a; 题解&#xff1a; int removeDuplicates(int* nums, int numsSize) {if (numsSize < 2) {return numsSize;}int slow 2, fast 2;while (fast < numsSize) {if (nums[slow - 2] ! nums[fast]) {nums[slow] nums[fast];slow;}fast;}return slow; }

Nginx线程池源码刨析

Nginx线程池源码刨析 相关的API int thread_mutex_create (pthread_mutex_t *mtx); int thread_mutex_destroy (pthread_mutex_t *mtx); int thread_mutex_lock (pthread_mutex_t *mtx); int thread_mutex_unlock (pthread_mutex_t *mtx); …

「PHP系列」PHP AJAX RSS 阅读器

文章目录 一、AJAX RSS 阅读器1. HTML结构 (index.html)2. PHP处理RSS (rss_fetcher.php)注意事项&#xff1a; 二、AJAX RSS 阅读器运用步骤 1: 设置HTML页面步骤 2: 编写PHP脚本 (rss_fetcher.php)步骤 3: 配置服务器步骤 4: 测试额外提示&#xff1a; 三、相关链接 一、AJAX…

python微信小程序 django+uniapp民宿房屋租赁短租系统

本课题主要基于微信小程序的民宿短租系统的设计&#xff0c;实现了在微信小程序里的民宿房屋的管理系统&#xff0c;系统将房屋信息发布&#xff0c;房屋租赁等功能集于一身&#xff0c;为热爱旅游的用户提供了多种多样的房屋租赁业务&#xff0c;同时也方便了房屋的拥有者发布…

问题解决记录 | 内存溢出

报错截图&#xff1a; 处理方式&#xff1a; 增大PDI工具的内存 打开Spoon.bat配置文件 修改配置

第六节笔记及作业----Lagent AgentLego 智能体应用搭建

关于 Agent 的相关理论 大语言模型存在一些局限性&#xff0c;比如会出现幻觉问题、有时效性问题以及可靠性问题。智能体的定义是具备感知、决策和行动能力的实体。智能体主要由感知部分、大脑部分和动作部分组成。智能体有多种类型&#xff0c;如 ReAct 类型&#xff08;侧重…

落地领域大模型应知必会 (1) :主要微调方法总览

在如今高速发展的人工智能领域&#xff0c;高效地利用大语言模型&#xff08;LLMs&#xff09;已经变得越来越重要。但是&#xff0c;利用大语言模型的方式太多了&#xff0c;如果你才刚刚开始接触它&#xff0c;可能会感到不知所措。 实质上&#xff0c;我们可以通过两种主要…

Github 2024-05-09 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-05-09统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Gin Web框架:高性能的Go HTTP框架 创建周期:3496 天开发语言:Go协议类型:MIT LicenseStar数量:73548 个Fork数量:7831 次关注人数…

项目经理必须要学会使用原型图工具或者别的必要工具吗

项目经理不一定必须学会使用原型图工具或其他特定技术工具&#xff0c;但熟悉和掌握一些关键工具和技术无疑会提高他们的工作效率和项目管理能力。以下是关于项目经理是否需要学习使用原型图工具或其他必要工具的几点考虑&#xff1a; 项目需求&#xff1a; 如果项目涉及产品设…

信创应用软件之国产邮箱

信创应用软件之国产邮箱 文章目录 信创应用软件之国产邮箱采用信创邮箱的必要性信创邮箱采购需求国产邮箱业务形态国产邮箱代表性品牌CoremailRichmail安宁eyouUMail拓波 邮件安全的发展阶段 采用信创邮箱的必要性 邮箱是天然的数据存储空间&#xff0c;党政和央国企客户在使用…

软件3班20240513

java.util.PropertyResourceBundle4554617c package com.yanyu;import java.sql.*; import java.util.ResourceBundle;public class JDBCTest01 {public static void main(String[] args) throws SQLException { // 获取属性配置文件ResourceBundle bundle Res…

高效文件管理:一键批量修改文件名,并统一转换为大写扩展名

在现代社会中&#xff0c;无论是个人还是企业&#xff0c;我们都需要处理大量的文件。有效的文件管理不仅能提高我们的工作效率&#xff0c;还能确保数据的完整性和安全性。其中&#xff0c;批量修改文件名和扩展名是一种常用的文件管理方式&#xff0c;本文将详细介绍云炫文件…

双亲委派模型的重要性与作用

1、安全性 双亲委派模型确保了Java核心类库的类型安全。因为所有的类加载请求最终都会传递给顶层的启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff0c;它负责加载Java的核心类库。这意味着任何自定义的类加载器都不可能加载一个与Java核心类库中的类同名…

[已解决]Linux挂载新硬盘到已有目录下(CentOS7)

首先总结下用到的命令&#xff1a; fdisk -l mount / unmountdf -hT / df -lhmkfs -t ext4 / mkfs -t ext3cp -amv aaa bbb 具体步骤&#xff1a; 挂载物理硬盘/虚拟硬盘到linux主机或者linux虚拟主机上&#xff1b;fdisk -l查看是否成功挂载&#xff1b; fdisk /dev/sdc 初…

牛客周赛 Round 38VP

1.签到&#xff1a;https://ac.nowcoder.com/acm/contest/78292/A AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int x; int main(){cin>>x;int wx%10;if(w0) cout<<0;else cout<<10-w; } 2.签到&#xff1a;https://ac.nowcode…