相关疑难解决方法(0)

为从 nginx 提供的静态内容设置过期标头

我正在使用 nginx 来为我的静态内容提供服务,有没有办法为每个满足特定规则的文件设置过期标头?例如,我可以为所有扩展名为“.css”的文件设置 expires 标头吗?

nginx cache

112
推荐指数
5
解决办法
17万
查看次数

Cloudflare 未按预期缓存

我想知道为什么 Cloulflare 不会缓存某个静态 js 文件。

鉴于要求:

curl -I http://www.testlifeinuk.com/dist/lifeinuk.js
Run Code Online (Sandbox Code Playgroud)

标题返回如下:

HTTP/1.1 200 OK
Date: Mon, 12 Jan 2015 10:59:21 GMT
Content-Type: application/javascript
Connection: keep-alive
Set-Cookie: __cfduid=d11a9f01292153436a211a9d807a3399b1421060361; expires=Tue, 12-Jan-16 10:59:21 GMT; path=/; domain=.testlifeinuk.com; HttpOnly
X-Powered-By: Express
Etag: W/"507660-1420797981000"
Cache-Control: public, max-age=1382400
Last-Modified: Fri, 09 Jan 2015 10:06:21 GMT
Vary: Accept-Encoding
Via: 1.1 vegur
CF-Cache-Status: MISS
Expires: Wed, 28 Jan 2015 10:59:21 GMT
Server: cloudflare-nginx
CF-RAY: 1a78d818b4af0b81-LHR
Run Code Online (Sandbox Code Playgroud)

令我困惑的是,无论我做了多少次请求,它总是返回

CF-Cache-Status: MISS
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

cache cloudflare

7
推荐指数
1
解决办法
1万
查看次数

nginx:结合 Expires 和 Cache-Control:不可变标头

nginxexpires指令设置 2 个标头,Expires并且Cache-Control

配置:

expires 1d;
Run Code Online (Sandbox Code Playgroud)

标题:

Expires: Tue, 24 Nov 2020 12:51:31 GMT
Cache-Control: max-age=86400
Run Code Online (Sandbox Code Playgroud)

我想保留Expires标题,但也设置Cache-Controlpublic, max-age=86400, immutable. 但这会产生双Cache-Control标头:

配置:

expires 1d;
add_header Cache-Control "public, max-age=86400, immutable"
Run Code Online (Sandbox Code Playgroud)

标题:

Expires: Tue, 24 Nov 2020 12:57:53 GMT
Cache-Control: max-age=86400
Cache-Control: public, max-age=86400, immutable
Run Code Online (Sandbox Code Playgroud)

我不能只使用add_header Expires ...,因为它需要未来的确切时间,而不仅仅是秒数。

我尝试使用more_set_headersngx_headers_more模块,但指令Cache-Control设置的标头expires仍然存在。

有没有办法将正确的Expires标头与Cache-Controlset to结合起来immutable

nginx

6
推荐指数
2
解决办法
3280
查看次数

标签 统计

cache ×2

nginx ×2

cloudflare ×1