WordPress.com借助NGINX,實現(xiàn)快速的互聯(lián)網(wǎng)體驗
譯文【51CTO快譯】WordPress.com為超過3300萬個網(wǎng)站提供服務,這些網(wǎng)站每個月吸引的訪客和網(wǎng)頁分別超過3.39億和34億。自2008年4月份以來,WordPress.com的頁面瀏覽量增長了大約4.4倍。WordPress.com的貴賓服務(http://vip.wordpress.com/)托管運行許多大受歡迎的網(wǎng)站,比如美國有線電視新聞網(wǎng)(CNN)的Political Ticker(政治新聞收報機)、美國全國橄欖球聯(lián)盟(NFL)、時代出版公司的The Page、《人物雜志》的Style Watch(時尚觀察)、Flickr和KROQ的企業(yè)博客,不一而足。WordPress.com母公司Automattic在遍布全球的十二個數(shù)據(jù)中心運行著2000臺服務器。WordPress.com的客戶數(shù)據(jù)在不同位置之間即時復制,旨在為數(shù)以億計的訪客提供一種極其可靠的、快速的互聯(lián)網(wǎng)體驗。
問題所在
2005年開始上線的WordPress.com最初從事的是共享主機服務,這跟所有的WordPress.org網(wǎng)站頗為相似。它很快被搬到了一臺專用服務器,后來被搬到了兩臺專用服務器。2005年年底,WordPress.com向公眾開放;到2006年年初,已擴大到了四臺Web服務器,采用循環(huán)域名服務(round robin DNS)來分發(fā)流量。此后沒過多久,WordPress.com擴大到了第二個數(shù)據(jù)中心,隨后擴大到了第三個數(shù)據(jù)中心。很快發(fā)現(xiàn),循環(huán)域名服務不是一種切實可行的長久之計。
雖然像F5 BIG-IP這些硬件設(shè)備提供了WordPress.com所需要的許多功能特性,但是只有五個人的Automattic系統(tǒng)團隊決定評估基于現(xiàn)有開源軟件而建的不同選擇方案。使用在大眾化硬件上運行的開源軟件,不僅提供了最高級別的靈活性,還具有節(jié)省成本的優(yōu)點--“為單單一個數(shù)據(jù)中心購買一對采用故障切換配置的功能強大的硬件設(shè)備也許費用有點高,但是為10個數(shù)據(jù)中心采購和維護10對這樣的硬件設(shè)備很快就會變得費用非常高。”
起初,WordPress.com的團隊選擇了Pound作為軟件負載均衡系統(tǒng),因為它易于使用,還內(nèi)置了對SSL的支持。Pound用了大概兩年后,WordPress.com需要額外的功能和可擴展性,也就是說:
- 可實時重新配置的功能,又不干擾實時流量。
- 更有效的運行狀況檢查機制,以便后端系統(tǒng)遇到故障后,可以順暢、穩(wěn)步地恢復過來,不會因突如其來的大量請求而導致應用程序基礎(chǔ)設(shè)施出現(xiàn)過載。
- 更好的可擴展性--包括每秒請求和并發(fā)連接數(shù)量。就每個負載均衡實例而言,Pound基于線程的模式則無法可靠地處理每秒超過1000次請求的任務。
解決辦法
2008年4月份,Automattic把WordPress.com的所有負載均衡系統(tǒng)由Pound全部改用NGINX。在此之前,Automattic的工程師好幾個月都一直將NGINX用于Gravatar(http://en.gravatar.com/),對其出色的性能和可擴展性留下了深刻印象,于是把WordPress.com遷移過去自然而然成了下一步。將WordPress.com改用NGINX之前,Automattic評估了另外幾款產(chǎn)品,其中包括HAProxy和LVS。下面是之所以選擇NGINX的幾個原因:
- 簡單、靈活、采用邏輯配置。
- 能夠?qū)崟r重新配置和升級NGINX實例,不會造成用戶請求被丟棄。
- 通過FastCGI、uwsgi或SCGI協(xié)議的應用程序請求路由傳送;NGINX還可以直接從存儲系統(tǒng)提供靜態(tài)內(nèi)容,進一步優(yōu)化了性能。
- 測試表明唯一能夠可靠地處理每秒超過10000次請求(實時流量從單單一臺服務器傳送到WordPress應用程序)的軟件。
- NGINX占用的內(nèi)存和處理器資源最少,而且易于預測。改用NGINX后,負載均衡服務器上的處理器資源使用量整整減少了三倍。
總的來說,借助基于NGINX的負載均衡系統(tǒng),WordPress.com在峰值狀態(tài)下每秒可以處理大約70000次請求和每秒超過15吉比特的流量,還為以后的發(fā)展留出了足夠的空間。硬件配置是采用超線程技術(shù)的雙至強5620四核處理器、8-12GB內(nèi)存,運行Debian Linux 6.0操作系統(tǒng)。作為高可用性架構(gòu)的一部分,WordPress.com之前使用Wackamole/Spread,但是最近遷移到了Keepalived。就連跨基于NGINX的Web加速和負載均衡層分發(fā)入站請求的工作也基于DNS循環(huán)機制來完成。
原文鏈接:點擊這里