6

我想使用 NGINX 启用 GZIP 和Brotli压缩。我必须在我的 nginx.conf 中为每个人提供他们自己的 MIME 类型列表:

gzip_types   text/plain
             text/css
             ...etc;

brotli_types text/plain
             text/css
             ...etc;

如何创建两个设置都可以使用的 MIME 类型的单个列表?

4

1 回答 1

0

将两个列表同步设置几乎是一项一次性任务,因为可以从压缩中受益的 MIME 类型的数量浮动在 20 左右。

如果绝对希望从中央位置管理列表,我建议研究开发 Ansible 剧本以将 Nginx 配置推送到服务器。

与推送相应配置相关的部分 Ansible playbook 如下所示:

- 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
# ...
于 2017-04-09T21:12:15.987 回答