WordPress本身的並發很低。在一台雙核2.5G+,2G記憶體的Linux機器上。使用Apache的ab命令測試下來。並發在6-10個左右。這樣的速度對於做站群的SEO策略來說,就是拿錢開玩笑,一台Server部署個50個WP部落格,基本上也算是極限了。一旦Google來,基本上部落格就無法訪問了,很多情況下會報資料庫的串連錯誤。這對google蜘蛛來說是災難性的。(網站的訪問速度也被參與了網站的排名)。
那麼有沒有什麼辦法能提高單台Server上安裝的WP部落格的數量,還能在Google來的時候,保持良好的訪問速度?
本文將探討如何在一台Server上部署上超過100,甚至超過200個WordPress部落格(在Google蜘蛛來或是大訪問量的情況下,能正常的開啟部落格)
需要解決的問題
* 資料庫的最大串連數
WP的硬傷就是Mysql。Mysql5.1+後的版本,預設的最大串連數為151,之前的才100。這點並發在有50個部落格的伺服器上,真的不夠用。google蜘蛛以來,基本上就會有個別部落格出現資料庫無法串連的問題。
我一般會修改 /etc/my.cnf 檔案,修改Mysql的最大串連數為1000,其實這個數值太大了也不好,Linux伺服器以及Apache在記憶體的限制下,能開啟的有效串連數也不是很大。超過300以上就能危險了。如果真要是到了1000個情況下,我想你SSH也無法登入了。只能聽天由命了~~~
OK,修改資料庫的最大串連數只是第一步,最簡單的一步。其實這個修改不能改變什麼,我們只是將Mysql預計會出現的問題先處理掉。下面就是專心最佳化WP了。
* WP部落格文章靜態化
通過ab命令,在啟用了WP super cache外掛程式的情況下。相同Server的並發在1300+左右。這和並發10來說,簡直就是天壤之別啊。
(具體如何安裝WP super cache,可參閱其它資料。或者我下次補一篇文章)
我這裡要說的是:
安裝了WP super cache後,首先需要開啟預先處理所有的文章頁面(建立永不到期的快取檔案)
為每個部落格添加一個robots.txt檔案,屏蔽對tag/, category/, 2012/等URL的抓取。
為每個部落格添加Google Sitemap工具,產生網站地圖。
對於新添加的文章而言,緩衝系統需要在訪問一次後才能產生靜態快取檔案。對於做推廣來說的部落格,通常一個站長手裡有數百個部落格,發布部落格也通常是使用偽原創軟體自動發布的。一個部落格每天可能會發布幾十篇文章,不可能在所有的部落格發布文章後,一個一個頁面的去點擊(讓WP緩衝靜態檔案)。所以這裡需要一個類似於蜘蛛的程式,在發布文章後,去類比蜘蛛去采。這樣當蜘蛛來採集的時候,WP已經為它準備好了靜態頁面,瞬間讓對WP部落格的訪問速度提高好幾個等級)。但是有些部落格的Google來的很快,可能發布了一篇文章後5分鐘,蜘蛛就來了。所以最好的策略就是在發布了一篇文章後,程式能訪問一次當前發布的文章,這樣就算蜘蛛在5分鐘內來采,我們的WP也已經緩衝好了對應的靜態檔案。
對於做推廣的WP部落格,在配置的時候需要注意。
* 為部落格添加robots.txt,屏蔽Tag,分類,存檔的抓取
user-agent: *
disallow: /wp-
disallow: /feed/
disallow: /comments/feed
disallow: /trackback/
disallow: /sample-page/
disallow: /hello-world/
disallow: /category/
disallow: /tag/
disallow: /2012/
* 禁用部落格文章的評論
* 對文章的評論需要登入的使用者才可以
* 取消PingBack等
* 解除發佈文章Ping文章中的URL(這點很關鍵,如果你是用WP部落格做推廣的,那麼文章裡面難免會出現你需要推廣的網站的URl,如果這個選項沒用禁用,那麼在發布一篇文章後,WP會在Ping文章中出現的URL。如果你伺服器上很多的部落格在使用程式自動發布文章的話,那麼可能對於被推廣的伺服器來說。在短期內串連數很飆升,嚴重是會導致被推廣的伺服器無法訪問)