设置Vary:Accept-Encoding Header(nginx)

我有一个nginx服务器,似乎无法find有关如何发送Vary:Accept-Encoding标头为CSS和JS文件的任何信息。 有没有人有关于此的信息?

谢谢!

这是来自nginx的文档 。

gzip_vary syntax: gzip_vary on|off default: gzip_vary off context: http, server, location 

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

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

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

在您要设置的域/子域的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; 

保存文件并重新启动nginx。

简单。 在Nginx的conf:

 vim /etc/nginx/nginx.conf 

在下面的附近底部添加以下内容:

  ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

只要取消注释gzip_vary on; 参数并重新启动或重新加载nginx服务:

 service nginx restart 

这应该解决这个问题。 如果您运行的是旧版本的nginx,则可能需要启用gzip on; ,因为这是不同的标题需要工作。

我希望这有帮助。 仅供参考,这适用于所有服务器/站点conf文件,除非覆盖在各自的服务器块中。 server {}

nginx,apache和IIS的源代码信息: https : //www.maxcdn.com/blog/accept-encoding-its-vary-important/

如果你已经尝试了其他的答案,并且仍然看不到(例如,如果你正在使用GTMetrix测试你的页面的速度),下面的内容可能会有所帮助:

确保所有的gzip_types也在/etc/nginx/nginx.conf http部分中设置。

/ etc / nginx / sites-available / *中的服务器块是一个你可以设置不同的头文件和gzip_types的地方,但是根据你的站点设置,你可能正在处理和返回文件, 。

在/etc/nginx/nginx.conf中你会发现一个'http'部分 – 在这里还有一个gzip_types和gzip_vary。

对于我来说,CSS和JS是静态文件,并在点击(wordpress)nginx站点可用文件(我在它前面有清漆)之前被提供服务。

因此,将gzip_types的完整列表添加到nginx.conf中的http部分,解决了我的问题。