在NGINX中使用GZIP和BROTLI共享MIME类型列表

时间:2016-10-03 08:17:29

标签: nginx gzip brotli ngx-brotli

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

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

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

如何创建可供两种设置使用的单一MIME类型列表?

1 个答案:

答案 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
# ...