问题标签 [brotli]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - apache启动时如何修复“未定义符号:BrotliEncoderTakeOutput”
我已经编译了mod_brotli.so
,但是当我重新启动 apache 时,它无法加载模块。
错误 :
httpd:/usr/local/apache2/etc/httpd.conf 第 155 行的语法错误:无法将模块/mod_brotli.so 加载到服务器中:/usr/local/apache2/modules/mod_brotli.so:未定义符号:BrotliEncoderTakeOutput
express - 在 Apostrophe CMS 中实现 Express Static
这完全是一个撇号 CMS 问题。捎带这个从未回答过的问题,我决定在 Stack Overflow 上问我的问题。我在这里找不到主题。
https://forum.apostrophecms.org/t/performance-engineering/61/2
考虑到这一点,ApostropheCMS 是一个非常酷的编辑器内 CMS,它构建在快速服务器上,但我不知道如何访问典型的快速设置中的 app.js 文件。
这个 npm 模块正是我们需要实现的。 https://www.npmjs.com/package/express-static-gzip
要添加以表达的代码:
1)如何将其添加到标准撇号设置?或 2) 撇号CMS 中是否已经有一种方法可以启用 brotli 和 gzip?
apache - 如何将 .htaccess 更新为有条件的 gzip on-the-fly
笔记
有人建议这是How to serve precompressed gzip/brotli files with .htaccess的副本。该问题仅旨在提供预压缩文件。这个问题不一样。请看下文。
我的目标
我想在它们存在时提供预压缩的 brotli 文件。如果不存在预压缩的 brotli 文件,则回退到即时gzip 压缩。
当前代码
我正在一个已经从其.htaccess
文件中启用了即时 gzip 的站点上工作,如下所示:
修改后的代码
我已经设置了一个使用 brotli 压缩许多静态资产的构建脚本。为了为他们服务,我mod_deflate
用以下内容替换了上面的块:
问题
当它们按预期存在时,这会提供 brotli 编码的文件。然而,我现在面临的问题是,因为剩余的资产在构建时没有进行 brotli 编码,所以它们现在没有压缩。
我一直无法弄清楚如何使用不需要我为 gzip 输出进行预压缩的 gzip 回退来为 brotli 提供服务。
任何帮助表示赞赏,谢谢!
node.js - 使用 brotli 压缩和解压 utf8 字符串
我正在尝试编写压缩和解压缩 JSON 字符串,但解压缩总是失败:
我无法发送压缩器返回的缓冲区,因为我需要通过 HTTP 响应发送压缩字符串才能将其取回。
此外,如果我使用base64
as 格式,所有工作,但字符串输出大于 simple JSON.stringify
,所以我会避免它。
我的代码:
是否有任何参数可以从压缩中获取有效的 utf8 字符串输出?
python - flask webservice API 是否支持 Brotli 压缩请求?
我想要一个用 Flask (python3) 编写的 REST Web 服务端点,它接受用 Brotli 压缩的消息。Flask 支持吗?
一种解决方法是使用类似于以下的非压缩请求正文:
并稍后在代码中将“内容”解压缩为 json。
这是一种有效的方法吗?或者是否有另一个支持 brotli 的 python 库?
免责声明:我不是网络服务专家
nginx - Nginx:缓存 Brotli 压缩代理上游响应
我在 Nginx 中为动态生成但很少更改的资源启用了 Brotli 压缩。
我的期望是,当 Nginx 缓存上游响应时,它也会缓存压缩结果。因此,我假设启用 Brotli 的 CPU 成本可以忽略不计。相反,我看到了 perf top
与 Brotli 相关的性能影响。
我验证了缓存到上游服务器的工作。但是,Nginx 仅将未压缩的上游请求存储在其缓存中。因此,它必须为每个请求运行昂贵的 Brotli 压缩。那就是问题所在。
有一些来源(与 gzip 压缩有关)建议在上游进行压缩,或者如果这不是创建第二个 Nginx 来代理请求的选项,它扮演上游的角色并进行压缩。这两种解决方案都不是很优雅。
有没有办法让 Nginx 不仅缓存未压缩的上游请求,还缓存压缩的结果?
也许我忽略了一些。这是一个简化的配置:
delphi - 在 Delphi 中解码 Brotli
如何使用 Indy 或 ICS 库在 Delphi 中解码使用 Brotli 压缩的 http 响应?默认情况下,它们似乎都不包含对它的支持。
.net - 如何在特定应用程序上禁用 BrotliCompressionModule
默认情况下,IIS 安装了 gzip 压缩 HTTP 模块。后来,我为 IIS 安装了 Brotli Compression HTTP Module 以提高浏览内容的压缩率。在 ApplicationHost.config 中,brotli 已添加到如下三个地方。
- 全局模块
- http压缩
模块
我有仪表板应用程序,它是 32 位应用程序,兼容在 IIS 上运行,在 IIS 中安装 Brotli 压缩 HTTP 模块之前,应用程序运行良好。
安装 brotli 压缩后,由于 brotli 停止了 DashboardApplication 池,应用程序无法运行。然后我找到了这个问题的以下根本原因。
Brotli 是 64 位应用程序,它不允许在 IIS 上使用我的 32 位应用程序。基于论坛解决方案,我添加了 preConditon="bitness64",它有助于单独运行 64 位应用程序的 globalModules。
上述解决方案有助于避免停止应用程序池。然后提出了新问题,因为找不到 BrotliCompressionModule 文件。我们找到了从我的应用程序的 web.config 中删除 brotli 模块的解决方案,如下所示。它有助于解决找不到文件的问题。
然后,另一个问题 -HTTP 错误 500.19 - 出现错误代码 0x800700c1 的内部服务器错误。
我们已经避免了对局部部分的 brotli 压缩,但不是在部分中。
如果我从 httpCompression 部分删除了 Brotli,我的 32 位仪表板应用程序运行良好。但它不会压缩 brotli 模块中的其他应用程序。
我怀疑我们也需要在 httpCompression 部分避免 brotli,但我找不到解决方案。
注意:我需要 gzip 和 br(Brotli) 压缩。因为 Brotli 被用于我的其他 64 位应用程序。
这是否可以禁用 IIS 上特定 32 位应用程序的 brotli 压缩?同时,Brotli 需要为其他应用程序站点工作。
提前致谢。
google-cloud-storage - 通过 Google 存储提供压缩文件
我想从Google 存储桶为我的网站提供静态文件。为此,我想压缩文件,考虑使用Brotli压缩,但有些浏览器不支持Brotli 压缩。所以他们建议使用gzip作为后备。
我不知道是否有基于浏览器支持从谷歌存储中提供文件。例如,如果浏览器支持brotli,它应该获取brotli版本,或者它应该获取gzip。
如何做到这一点?