之前用nginx和第三方etag模块,配置如下。
FileETag on;
etag_format “%X%X”;
nginx1.3.3后原生就支持etag,默认开启。通过学习进行如下修改。
RFC2616(ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt)对HTTP协议的规定,如果第一次请求资源正常,返回状态码200,第二次请求会在请求头里增加If-Modified-Since,如果If-Modified-Since是最后修改时间点,表示该资源没被修改,则http返回状态代码304,在相响应头中增加Last-Modified。这样该资源就不会被重复下载。nginx1.9.4配置修改如下。
location ~ .*\.(gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|xml|txt|flv|swf|mid|doc|cur|xls|pdf|txt|)$
{
etag on;
expires 1h;
}
此部分内容应该是与权限无关的资源部分。如果是使用安全链接,保证session安全,请求链接会有随机数或算法变化,每次的链接都不同。此部分还会消耗CPU,就达不到节约带宽的目的了。
发表评论