我试图在服务器上缓存静态文件,而不是去上游'服务器每次。这个上游服务器恰好是Cloudfront,
这是我的nginx配置:
nginx.conf http上下文:
location /gameimages/stock/ {
proxy_ignore_headers "Set-Cookie";
proxy_hide_header "Set-Cookie";
add_header X-Proxy-Cache $upstream_cache_status;
proxy_cache_valid 404 1s;
proxy_cache_valid any 15d;
proxy_cache oly_zone;
proxy_pass http://d34sdfsfsadfasdfmhbsdafirsdfsdffelaut.cloudfront.net/;
}
website.conf:
Accept-Ranges:bytes
Age:11515
Connection:keep-alive
Content-Length:11577
Content-Type:image/jpeg
Date:Mon, 08 Aug 2016 19:25:16 GMT
ETag:"57a47349-2d39"
Last-Modified:Fri, 05 Aug 2016 11:06:49 GMT
Server:nginx/1.4.1
Via:1.1 3ba457b8dbcd4sadfsdfe93515e26caad.cloudfront.net (CloudFront)
X-Amz-Cf-Id:N0Dlk5c28sdfsf5Cvfskb3-T6PRBfSXfEPsdfasfuOLW7SHa1hjQ==
X-Cache:Hit from cloudfront
X-Proxy-Cache:HIT
我认为这有效,但示例响应标题显示了这一点:
StartInfo
它似乎同时击中了CloudFront和服务器上的缓存。我做错了吗?
谢谢,
迈克尔
答案 0 :(得分:0)
如果问题仍然存在 - 我找到了解决方案。 通常,CloudFront应从资产加载路径中排除,S3存储桶应直接用作数据源。
解决方案:https://dpb587.me/blog/2015/06/20/using-nginx-to-reverse-proxy-and-cache-s3-objects.html
我的情况只需添加一行就可以使缓存魔法工作:
# use google as dns
resolver 8.8.8.8;
有时SELinux需要进行一些调整以防止nginx(13:Permission denied)错误:
sudo setsebool httpd_can_network_connect on -P
sudo semanage permissive -a httpd_t