我想使用NGINX启用GZIP和Brotli压缩。我必须在我的nginx.conf中为每个提供各自的MIME类型列表:
gzip_types text/plain
text/css
...etc;
brotli_types text/plain
text/css
...etc;
如何创建可供两种设置使用的单一MIME类型列表?
答案 0 :(得分:0)
将两个列表设置为同步是一项非常简单的任务,因为可以从压缩中受益的MIME类型数量大约在20左右。
如果绝对希望从中心位置管理列表,我建议您考虑开发一个Ansible手册,将Nginx配置推送到服务器。
与推送相应配置相关的Ansible手册的一部分将如下所示:
- name: "Set fact for compressible MIME types"
set_fact:
compressibles:
- "text/css"
- "application/javascript"
- "..."
- name: "copy {{ item }} conf.d config file"
template:
src: "{{ item }}.conf.j2"
dest: "/etc/nginx/conf.d/{{ item }}.conf"
with_items:
- brotli
- gzip
notify: reload nginx
<强> gzip.conf.j2:强>
gzip on;
gzip_types {{ compressibles|join(' ') }};
# whatever else you think is relevant for gzip configuration
# ...
<强> brotli.conf.j2 强>
brotli on;
brotli_types {{ compressibles|join(' ') }};
# whatever else you think is relevant for brotli configuration
# ...