利用浏览器缓存-具有CDN的Nginx

时间:2018-08-04 19:26:15

标签: angular performance nginx google-cloud-platform cdn

我正在使用pingdom测试我的网站: https://tools.pingdom.com/#!/dCLQGc/https://stagingreport.daytwo.com

在杠杆式浏览器缓存中评分较低: enter image description here

使用以下配置从nginx服务器提供的所有静态文件

server {
   listen 80;

    gzip on;
    gzip_vary on;
    gzip_types    text/plain application/javascript application/x-javascript text/javascript text/xml text/css;


    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location / {
        if ($http_x_forwarded_proto = "http") {
            return 301 https://$host$request_uri;
        }

        try_files $uri $uri/ /index.html;
    }


}

因为我正在使用谷歌云CDN ,所以我没有在服务器上设置任何缓存配置。

为了获得更高的性能得分 我应该更改Nginx配置中的某些内容吗?

1 个答案:

答案 0 :(得分:1)

根据下面提到的caching details,您可能需要相应地配置nginx:

  

仅当以下所有条件都可以将响应存储在Cloud CDN缓存中时:   以下是正确的:

     

它由Cloud CDN的后端服务或后端存储桶提供   启用。

     

它是对GET请求的响应。

     

其状态代码为200、203、206、300、301、302、307或410。

     

它具有Content-Length标头或Transfer-Encoding标头。

     

它具有Cache-Control:公共头。

     

它具有Cache-Control:s-maxage,Cache-Control:max-age或Expires   标头。

     

它具有Content-Length,Content-Range或Transfer-Encoding标头。

     

它的大小小于或等于最大大小。

     

对于后端存储桶,您可以通过标记以下内容来满足这些要求   对象公开共享。

     

也有一些检查阻止响应的缓存。回应是   如果满足以下任一条件,则不缓存:

     

它具有Set-Cookie标头。

     

它具有Vary标头,其值不是Accept,Accept-Encoding,   或起源。

     

它具有Cache-Control:无存储,无缓存或私有指令。

     

相应的请求具有Cache-Control:no-store指令。