- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是这样创建 nginx 的配置的:
proxy_cache_path /tmp/nginx/static levels=1:2 keys_zone=static_zone:10m inactive=10d use_temp_path$
proxy_cache_key "$request_uri$args";
location ~* \.(css|gif|ico|jpe?g|js(on)?|png|svg|webp|ttf|woff|woff2|txt|map)$ {
proxy_hide_header Date;
proxy_cache_revalidate on;
proxy_pass http://static:8080;
proxy_cache_bypass $cookie_nocache $arg_nocache;
proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie";
proxy_hide_header "Set-Cookie";
proxy_buffering on;
proxy_cache static_zone;
proxy_cache_valid 200 301 302 30m;
proxy_cache_valid 404 10m;
#expires max;
add_header X-Proxy-Cache $upstream_cache_status;
access_log off;
add_header Cache-Control "public";
add_header Pragma "public";
expires 30d;
log_not_found off;
tcp_nodelay off;
}
在来自 Chrome 的第一个请求中,所有工作都像 x-proxy-cache:MISS 其他请求从磁盘缓存中获得, header 为 x-proxy-cache:HIT。刷新后也是HIT。但是当我在这台机器上从其他浏览器(Opera、Edge)打开页面时,这个请求是 MISS。在文件系统 nginx 中,在相同内容上创建两个具有不同 md5sum 散列的文件。例如文件名 438476ac40665c852d3acde1acf769f1 head:
^C^@^@^@^@^@^@^@/^V
W^@^@^@^@��^CW^@^@^@^@'^O
W^@^@^@^@m�,�^@^@�^@�^A^N"5703e3a7-67e"^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$
KEY: /js/catalog.js
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 12 Apr 2016 15:07:19 GMT
Content-Type: application/javascript
Content-Length: 1662
Last-Modified: Tue, 05 Apr 2016 16:11:19 GMT
Connection: close
Vary: Accept-Encoding
ETag: "5703e3a7-67e"
Accept-Ranges: bytes
第二个文件名为a6f57423c2220fba3ada5f516f6dd91c,内容相同,头部为:
^C^@^@^@^@^@^@^@ ^V
W^@^@^@^@��^CW^@^@^@^@^A^O
W^@^@^@^@m�,�^@^@�^@�^A^N"5703e3a7-67e"^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$
KEY: /js/catalog.js
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 12 Apr 2016 15:06:41 GMT
Content-Type: application/javascript
Content-Length: 1662
Last-Modified: Tue, 05 Apr 2016 16:11:19 GMT
Connection: close
Vary: Accept-Encoding
ETag: "5703e3a7-67e"
Accept-Ranges: bytes
根据文档,文件名必须是来自 key 的 md5,并且有 echo -n '/js/catalog.js'| md5sum 是 a6f57423c2220fba3ada5f516f6dd91c 作为其中一个文件的名称(这是第一个请求)。我不想在每个用户|浏览器的服务器 js|css 中缓存。只需缓存一次并从缓存中接收所有用户请求。附言我的网站使用https、http2、nginx 1.9.14版本。
最佳答案
根据那里的 Vary: Accept-Encoding header ,我猜测 Edge 和 Opera 会为请求发送不同的“Accept-Encoding” header 。例如,一个可以简单地发送“gzip”,而另一个发送“gzip,deflate”。这些在技术上是不同的 Accept-Encoding request header 。
如果您知道来源不会发送有意义的不同编码,这些编码在浏览器之间不起作用,您可以添加:
proxy_ignore_headers Vary;
您已经有了 proxy_ignore_headers,所以您可以添加到它。
由于所有主流浏览器都支持 gzip,因此风险可能非常低。然而,“webp”也是通过 Accept-Encoding 完成的,因此如果源可以处理 webp,这可能会对某些图像产生令人惊讶的结果。
关于caching - nginx proxy_cache key hash 在每个其他浏览器请求上发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578040/
前言: 由于本人工作原因,涉及到网络直播领域,其中视频的回放下载,涉及到了一些视频下载方面的技术。针对于一个完整视频的下载,目前市面上的主流做法是,先将整个视频流切片,存储到文件服务器中,在用户
我是这样创建 nginx 的配置的: proxy_cache_path /tmp/nginx/static levels=1:2 keys_zone=static_zone:10m inactive=
我是这样创建 nginx 的配置的: proxy_cache_path /tmp/nginx/static levels=1:2 keys_zone=static_zone:10m inactive=
我被 NGINX 1.4.4 卡住了,请求来自后端 ngx_pagespeed 服务器的大型(大概)缩小 CSS 文件,可以很好地处理它? 设置: [伦敦] eac2.marvelled.co.nz
我是一名优秀的程序员,十分优秀!