2013-02-18 62 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