nginx是在启用Brotli的情况下编译的。在我的nginx.conf
中http {
...
brotli_static on;
}
我的.br文件位于proxy_pass
的服务器上。
location / {
...
proxy_pass http://app;
}
已在app
服务器上生成.br文件:
$ ls -lh public/js/dist/index.js*
-rw-r--r-- 1 mike wheel 1.2M Apr 4 09:07 public/js/dist/index.js
-rw-r--r-- 1 mike wheel 201K Apr 4 09:07 public/js/dist/index.js.br
拉下未压缩的文件:
wget https://example.com/js/dist/index.js
拉下1,157,704个未压缩文件大小。
wget -S --header="accept-encoding: gzip" https://example.com/js/dist/index.js
下拉一个309,360大小的gzip压缩文件。
可是:
wget -S --header="accept-encoding: br" https://example.com/js/dist/index.js
仍然获得完整的1,157,704大小的未压缩文件。
我希望希望 brotli_static
代理.br文件请求 - 向.br等效资源的后端发送一些GET请求 - 但这似乎不会工作。
brotli_static可以通过proxy_pass工作吗?
答案 0 :(得分:0)
基于Maxim Dounin(一名nginx核心工程师)' s comment on gzip_static - 我认为brotli_static的行为类似于 - brotli_static只处理文件,而不是HTTP资源:
也就是说,只有当nginx即将返回常规文件时,才能使用gzip_static。
所以看起来像brotli_static和proxy_pass是不可能的。
答案 1 :(得分:0)
您的nginx配置文件需要一个部分来告诉它提供静态内容文件夹。您不希望您的应用服务器执行此操作。
我相信您需要将它放在location /
之前,以便它优先。