我正在执行一些 WPO 任务,所以 PageSpeed 建议我利用浏览器缓存。对于 Nginx 服务器中的一些静态文件,我已经成功地改进了它,但是存储在 Amazon S3服务器中的图像文件仍然丢失。
我读过一个方法,关于更新每个文件在 S3中包括一些头元标签(过期和缓存控制)。我觉得这不是个好办法。我有成千上万的文件,所以这对我来说不可行。
我认为最方便的方法是配置我的 Nginx 1.6.0服务器来代理 S3文件。我已经读过这方面的文章,但是我对服务器配置一窍不通,所以我从这些网站得到了几个例子: https://gist.github.com/benjaminbarbe/1961db5ffbaad57eff12
我在 nginx 配置文件中的服务器块中添加了这个位置代码:
#inside server block
location /mybucket.s3.amazonaws.com/ {
proxy_http_version 1.1;
proxy_set_header Host mybucket.s3.amazonaws.com;
proxy_set_header Authorization '';
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header Set-Cookie;
proxy_ignore_headers "Set-Cookie";
proxy_buffering off;
proxy_intercept_errors on;
proxy_pass http://mybucket.s3.amazonaws.com;
}
可以肯定的是,这对我不起作用。请求中没有包含标头。首先,我认为请求与位置不匹配。
Accept-Ranges:bytes
Content-Length:90810
Content-Type:image/jpeg
Date:Fri, 23 Jun 2017 04:53:56 GMT
ETag:"4fd0be549fbcaf9b47c18a15146cdf16"
Last-Modified:Tue, 09 Jun 2015 09:47:13 GMT
Server:AmazonS3
x-amz-id-2:cKsq1qRra74DqVsTewh3P3sgzVUoPR8aAT2NFCuwA+JjCdDZfk7/7x/C0WPjBa51GEb4C8LyAIc=
x-amz-request-id:94EADB4EDD3DE1C1