如何在Nginx上配置ETag

时间:2014-07-03 09:02:34

标签: nginx browser-cache http-etag

我使用Nginx作为网络服务器,并希望实现一种浏览器缓存方法,以便用户在本地保存静态未更改文件的副本,并仅下载已更改的文件。其中一个建议是使用文件时间戳来找出已更改的文件并仅刷新它们,但在我的情况下这是不可能的,因为在每次新部署之后都会创建整个Web应用程序的新版本并且所有文件都是&#39 ;时间戳改变。

我对ETag标题进行了一些研究,它似乎是一个非常好的解决方案,但我发现Etags尚未得到Nginx的正式支持。

有没有办法在Nginx上实施Etags或任何替代解决方案?

2 个答案:

答案 0 :(得分:32)

升级您的Nginx。

Syntax:     etag on | off;
Default:    etag on;

Context:    http, server, location

This directive appeared in version 1.3.3.

Enables or disables automatic generation of the “ETag” response header field for static resources.

来源:http://nginx.org/en/docs/http/ngx_http_core_module.html#etag

答案 1 :(得分:15)

所有最新版本的Nginx(比1.3.3更新)都会自动设置这些。

例如:

if t == 0:
    I_ext = 1

将返回响应标头location /img { root /path/to/public; } + Etag标头。