设置变化:接受编码标头(nginx)

Mit*_*ell 30 nginx

我有一个nginx服务器,似乎无法找到有关如何为CSS和JS文件发送Vary:Accept-Encoding标头的任何信息.有没有人有这方面的信息?

谢谢!

小智 42

这是来自nginx 文档.

gzip_vary
syntax: gzip_vary on|off
default: gzip_vary off
context: http, server, location
Run Code Online (Sandbox Code Playgroud)

启用响应标头"Vary: Accept-Encoding".请注意,此标头会导致IE 4-6由于错误而不缓存内容(参见2).

如果你只是添加gzip_vary on;它应该做它的工作.

还要确保你有任何一个指令gzip,gzip_static或gunzip是活动的.

  • 我认为这不是正确的答案 - 至少,不是唯一的,也许并非所有nginx版本(我无法分辨).单独使用gzip_vary将启用gzip,如果它已关闭,但将保留默认的gzip_types,并且不会为与默认text/html mimetype不同的资源启用Vary.http://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip(在nginx 1.4.6上测试过) (2认同)

PJu*_*ior 30

server {要设置它的域/子域内,添加

    gzip on;
    gzip_min_length  1100;
    gzip_buffers  4 32k;
    gzip_types    text/plain application/x-javascript text/xml text/css;
    gzip_vary on;
Run Code Online (Sandbox Code Playgroud)

保存文件并重新启动nginx.

  • 据我所知,这是唯一正确的答案.gzip_types是这里的关键,因为默认只是text/html,因此不会为不同的内容类型启用. (6认同)