2013-02-18 35 views
0

我在Webfaction中通过Apache和Nginx提供我的内容。 Webfaction仅支持其所有静态内容(图像,css文件,js等)的Nginx服务器的'epxires_max'指令。通过Nginx和SEO优化服务未到期的内容

我想谷歌PageSpeed工具,它这样说:

以下缓存资源有一个短暂的新鲜感寿命。 指定到期至少一周在未来的 以下资源:

,然后列出它认为我需要指定其到期约50幅图像。

所以我的问题是:

(a)至(Apache和)Nginx的(包括无expires_max指令),服务内容和使用memcached的,我也需要指定更多我的静态内容过期的信息? (b)除'expires_max'外,我还有其他选择吗?

回答

1

基本上到期信息是通过使用HTTP头的规定,比较特别一些Expires,Cache-Control和可能的Etag`Last-Modified的组合。请参阅http://www.mnot.net/cache_docs/以获取有关缓存如何工作以及标题含义的更多信息。

设置这些头通常是你在web服务器配置做一些事情:

  • 对于Apache您可以在必要的配置添加到您的主Apache配置(如果你有存取权限是),或通过。 htaccess文件。您可以在这些.htaccess文件中添加哪些指令取决于在主配置中如何配置AllowOverride指令。
  • Nginx的需要访问主服务器配置文件,有没有被类似的.htaccess机制(见http://wiki.nginx.org/LikeApache-htaccess为什么)

换句话说,你需要联系webfaction支持(如果它不是在他们的常见问题)并找出对您开放的选项:

  • 您可以自己添加东西到主配置吗? (我从Matt的回答中收集不到)
  • 他们是否愿意通过票证添加配置位到虚拟主机的配置中?
  • Apache的AllowOverride设置为什么?因此你可以自己设定什么? (请参阅上面链接的Apache文档)
+0

谢谢。这确实是非常有益的。但我真的需要这样做吗?有必要吗?它会让我的网站更快吗? memcached + Nginx不够吗? – xpanta 2013-02-19 07:07:35

+1

你不需要做(你的网站没有它会工作),但你肯定会_want_它(因为它会减少延迟,从而使你的网站感觉更快)。基本上设置缓存头允许代理和浏览器缓存在本地保存这些资源,这意味着在第二次访问时它的速度更快(由于网络延迟被消除),这也意味着它们不使用服务器带宽来请求相同的事情多重倍。 – cobaco 2013-02-19 07:52:41

3

如果您使用NGINX来满足您的所有静态内容,则服务器块中添加此的应该做的伎俩:

location ~* \.(?:css|js|gif|jpe?g|png)$ { 
    expires max; 
    add_header Cache-Control public; 
} 
+0

谢谢,但“服务器块”在哪里?我通过Webfaction提供服务,尽管我想你的意思是一些.conf文件,你确定我可以访问它吗? – xpanta 2013-02-18 08:36:54

+0

https://www.webfaction.com/列出了'full shell access'作为一项功能。所以很可能你应该可以访问conffile。最有可能的是'/ etc/nginx/sites-enabled /'(通常每个站点有1个配置文件) – cobaco 2013-02-18 11:52:19

+0

非常感谢,不幸的是,Nginx是一个系统范围的安装,我不能配置我自己的设置。然而,我被允许安装我自己的副本,但我没有时间。无论如何,马特的回答并没有回答我的问题(尽管知道这是一件好事)。 – xpanta 2013-02-18 12:12:11