繁体   English   中英

Nginx不使用代理缓存和Cloudfront

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM