1

我们需要动态生成图像并使用 CDN 进行缓存。为此,我们配置了一个支持负载均衡器的云 CDN 后端服务。我们正在使用 Nginx 代理服务器。我们在 Google 云 CDN 文档中添加了指定的标头,但不幸的是它没有缓存。

要求:

GET /resize?size=l&url=https://example.com/image.jpeg HTTP/1.1
Host: resize.example.com

请求标头:

Host: resize.example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

响应标头:

HTTP/1.1 200 OK
Server: nginx/1.17.2
Date: Wed, 15 Jan 2020 15:01:14 GMT
Content-Type: image/jpeg
Content-Length: 62771
cache-control: max-age=86400, public, s-maxage=86400
Via: 1.1 google
4

1 回答 1

1

我建议你几页可以帮助你。

a) 并非所有 HTTP 响应都是可缓存的。Cloud CDN 仅缓存满足本节所有要求的响应。其中一些要求由 RFC 7234 指定,其他要求特定于 Cloud CDN。

HTTP 响应的可缓存性

响应没有被缓存——疑难解答

以下示例演示了使用 curl 检查http://example.com/style.css的 HTTP 响应标头:

$ curl -s -D - -o /dev/null http://example.com/style.css HTTP/1.1 200 OK 日期:2016 年 2 月 16 日星期二 12:00:00 GMT 内容类型:text/css 内容-长度:1977 年通过:1.1 谷歌

尽管可能是因为添加了响应,但您可能已经阅读过它。

于 2020-01-15T16:38:58.390 回答