我试图检查已经存在的问题和答案,但是找不到我的主题的答案。我检查过的事情:
- 我在我的域上拥有适当的证书
- 我正在发送适当的响应头(至少我认为是这样,模糊的是带有s3 url的位置头):
更多信息:
- 我们使用cloudflare中的http2.0,无论如何会影响到它?
- 在我们的服务器上,我们仅使用nginx + php-fpm
确切的情况是-我们使用服务器上发布请求中的参数生成缩小的图像,并将其保存在S3上。我想用Last-Modified
缓存这些请求,以使浏览器不会发出不必要的请求,所以看起来像这样:
- 向我们的服务器请求适当的参数(例如图像大小等),构建某种对象密钥以保存到s3中
- 调整大小,将调整大小后的图像上传到S3。
- 返回图片
在下一个请求上:
- 请求我们的服务器,再次构建密钥
- 检查它在S3上是否存在,如果是,则返回重定向到s3 url。
- 如果没有,请调整大小并再次上传并返回图片
我想将其更改为:
- 向我们的服务器请求适当的参数(例如图像大小等),构建某种密钥进行保存
- 调整大小,如果需要,将调整大小后的图像上传到S3
- 返回图片或使用最后修改的标头重定向到s3。
在下一个请求上:
- 检查是否已修改标头
- 如果与当前日期的差小于72h(最大s3 url ttl)并且图像未更新(我们已经在数据库中更新了日期),则返回304。
- 否则请执行上面的操作。
甚至是随机的,有时每10或20个请求中就有1个,它工作正常,就像我有时有304个请求,但这确实很少见。
有什么主意吗?