nginx中设置开启支持etag标签 nginx中对css和js设置客户端缓存的方法
nginx中设置开启支持etag标签
步骤一:
确认Nginx版本,命令:Nginx安装目录/sbin/nginx–v,

版本为1.7.3及更高,继续步骤2;版本为1.7.3以下,1.3.3及以上,进行步骤3;版本为1.3.3以下,不支持ETag,请升级您的Nginx。

确认没有使用ngx_headers_more清除ETag头:同样在配置文件中不能出现如下语句的任意一句,如果出现请将其删除。

步骤2
确认没有关闭ETag:打开Nginx的配置文件nginx.conf(默认位置Nginx安装目录/conf/),确保其中没有出现etagoff;,下图为出现的情况,请将此行删除。
重新启动Nginx,就启用ETag功能了。
步骤3
查看是否开启了gzip,且是否和etag出现冲突,出现冲突去步骤4,没有去步骤2。
打开Nginx的配置文件nginx.conf(默认位置Nginx安装目录/conf/),其中出现gzip on;语句证明开启了gzip,如图

开启gzip时,可能与etag出现冲突,用浏览器多次请求此网站的静态元素,如果只返回200,不返回304,证明存在冲突,请去步骤4;没有冲突去步骤2。
步骤4
请关闭gzip,即将上一步中的gzipon;改为gzip off;然后去步骤2。
若不想关闭gzip,并要开启ETag,同时仍要坚持使用当前的Nginx版本,只能修改源码并重新编译。
具体的步骤这里不再详细描述,请自行查找。
nginx中对css和js设置客户端缓存的方法
#对图片设置缓存
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
add_header Cache-Control "public";
try_files $uri =404;
error_log /dev/null;
access_log /dev/null;
}
#对css/js设置缓存
location ~ .*\.(js|css)?$
{
#expires 12h;
expires 30d;
add_header Cache-Control "public";
try_files $uri =404;
error_log /dev/null;
access_log /dev/null;
}开启后,每次客户端的刷新都不会重新请求服务器,而是读取来自客户端的浏览器缓存。
















