[英]nginx not using proxy cache and cloudfront
我正在尝试在服务器上缓存静态文件,而不是每次都访问“上游”服务器。 该上游服务器恰好是Cloudfront,
这是我的nginx配置:
nginx.conf http上下文:
proxy_cache_key "$scheme$host$request_uri";
proxy_cache_path /var/spool/nginx levels=1:1 keys_zone=oly_zone:1000m;
proxy_cache_use_stale updating;
proxy_cache_valid 200 301 302 10m;
proxy_cache_valid any 10s;
proxy_cache oly_zone;
website.conf:
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/;
}
我以为这可行,但是示例响应标头显示了这一点:
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
它似乎同时击中了CloudFront和服务器上的缓存。 难道我做错了什么?
谢谢,
麦可
如果问题仍然存在-我找到了解决方案。 通常,应从资产加载路径中排除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:权限被拒绝)错误:
sudo setsebool httpd_can_network_connect on -P
sudo semanage permissive -a httpd_t
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.