我想使用nginx作为客户端和我的一组应用程序之间的代理,我遇到的问题是:
我按如下方式配置了nginx:
location ^~ /static/ {
etag on;
expires 1d;
more_set_headers "Vary: Accept-Encoding";
location ~* \.(css|js)$ {
gzip_static on;
expires -1;
proxy_pass http://my_upstream;
}
proxy_pass http://my_upstream;
}
我期待etags能为js和css这样的东西工作,但事实并非如此。我想它是因为js和css文件与nginx不在同一台机器上,这就是gzip_static想要解决的问题。
基本上我的问题是,是否有可能以这种方式工作?如果它是如何做到的:))
答案 0 :(得分:0)
根据this forum post,etag on
与可能修改回复的proxy_pass
不兼容(如gzip_static
所示):
它所使用的ETag标题强大,意味着它必须是 每当实体的位改变时改变。这基本上 意味着必须通过更改的过滤器删除ETag标头 回复内容。
正如同一篇文章所述,通过Last-Modified
通常足以让客户提出有条件的请求。