YSlow - 过期和压缩评分为 F,但响应标头显示正确

YSlow - 过期和压缩评分为 F,但响应标头显示正确

我刚刚将一个相当繁忙的 wordpress 网站从共享主机移至具有 512MB 内存的 VPS 服务器,并尝试进行性能调整,以免我崩溃并购买另一个 VPS 来减轻负载。因此,我在网上搜索有关 nginx 的性能提示,并遇到了“gzip”和“expires max”。从我见过的一些示例和修改后,我进行了以下更改,它们似乎可以正常工作,但 YSlow 的状态却不同。

# Entry in nginx vhost.conf
location /wp-content {
    alias /home/src/web/app/melikedev/current/code/web/wp-content/;
    expires max;
    add_header Pragma public;
    add_header Cache-Control "public";
}

并通过 curl 从另一台服务器进行测试:

mpurcell@service1 ~ $ -> curl -I -H "Accept-Encoding: gzip, deflate" -L http://melikedev.com/wp-content/plugins/sociable/css/sociable.css?ver=3.4.2
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Fri, 18 Jan 2013 04:58:34 GMT
Content-Type: text/css
Last-Modified: Sat, 29 Dec 2012 08:50:41 GMT
Connection: keep-alive
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Pragma: public
Cache-Control: public
Content-Encoding: gzip

根据响应标头,expires 标头存在,内容已压缩,但 YSlow 仍然对这两项都给出了 F。我是不是漏掉了什么?还是 YSlow 错了?

- 更新 -

Yslow 报告了 28 个静态组件(未过期),其中一些是我无法控制的 Google AdSense 资产,但对于我可以控制的组件,我希望它们能够按照 vhost.conf 文件中的指令工作。我列出了 Yslow 仍在抱怨的组件之一以及响应标头。

There are 28 static components without a far-future expiration date.

    (no expires) http://melikedev.com/wp-content/plugins/sociable/js/sociable.js?ver=3.4.2

    ....

响应标头:

mpurcell@service1 ~ $ -> curl -I -H "Accept-Encoding: gzip, deflate" http://melikedev.com/wp-content/plugins/sociable/js/sociable.js?ver=3.4.2
HTTP/1.1 200 OK
Server: nginx/1.0.15
Date: Sat, 19 Jan 2013 00:28:24 GMT
Content-Type: application/x-javascript; charset=utf-8
Last-Modified: Sat, 29 Dec 2012 08:50:42 GMT
Connection: keep-alive
Expires: Thu, 31 Dec 2037 23:55:55 GMT
Cache-Control: max-age=315360000
Pragma: public
Cache-Control: public
Content-Encoding: gzip

有趣的是,我第一次发布的 CSS 文件的响应标头没有出现在 Yslow 报告中,也许 Yslow 不喜欢对 js 文件进行版本控制?

相关内容