轉自:http://www.williamlong.info/archives/1908.html
LAMP(Linux-Apache-MySQL-PHP)網站架構是目前國際流行的Web架構,該架構包括:Linux作業系統,Apache網 絡伺服器,MySQL資料庫,Perl、PHP或者Python程式設計語言,所有組成産品均是開源軟體,是國際上成熟的架構架構,很多流行的商業應用都是采 取這個架構,和Java/J2EE架構相比,LAMP具有Web資源豐富、輕量、快速開發等特點,微軟的.NET架構相比,LAMP具有通用、跨平台、高 性能、低價格的優勢,是以LAMP無論是性能、品質還是價格都是企業搭建網站的首選平台。
對于大流量、大并發量的網站系統架構來說,除 了硬體上使用高性能的伺服器、負載均衡、CDN等之外,在軟體架構上需要重點關注下面幾個環節:使用高性能的作業系統(OS)、高性能的網頁伺服器 (Web Server)、高性能的資料庫(Databse)、高效率的程式設計語言等。下面我将從這幾點對其一一讨論。
作業系統
Linux作業系統有很多個不同的發行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一個發行版都有自己的特色,比如RHEL的穩定,Ubuntu的易用,基于穩定性 和性能的考慮,作業系統選擇CentOS(Community ENTerprise Operating System)是一個理想的方案。
CentOS(Community ENTerprise Operating System)是Linux發行版之一,是RHEL/Red Hat Enterprise Linux的精簡免費版,和RHEL為同樣的源代碼,不過,RHEL和SUSE LE等企業版,提供的更新服務均是收費更新,無法免費線上更新,是以要求免費的高度穩定性的伺服器可以用CentOS替代Red Hat Enterprise Linux使用。

LAMP網站架構圖
Web伺服器、緩存和PHP加速
Apache是LAMP架構最核心的Web Server,開源、穩定、子產品豐富是Apache的優勢。但Apache的缺點是有些臃腫,記憶體和CPU開銷大,性能上有損耗,不如一些輕量級的Web 伺服器(例如nginx)高效,輕量級的Web伺服器對于靜态檔案的響應能力來說遠高于Apache伺服器。
Apache做為Web Server是負載PHP的最佳選擇,如果流量很大的話,可以采用nginx來負載非PHP的Web請求。nginx是一個高性能的HTTP和反向代理服 務器,Nginx以它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。Nginx不支援PHP和CGI等動态語言,但支援負載均衡和容 錯,可和Apache配合使用,是輕量級的HTTP伺服器的首選。
Web伺服器的緩存也有多種方案,Apache提供了自己的緩存模 塊,也可以使用外加的Squid子產品進行緩存,這兩種方式均可以有效的提高Apache的通路響應能力。Squid Cache是一個Web緩存伺服器,支援高效的緩存,可以作為網頁伺服器的前置cache伺服器緩存相關請求來提高Web伺服器的速度,把Squid放在 Apache的前端來緩存Web伺服器生成的動态内容,而Web應用程式隻需要适當地設定頁面實效時間即可。如通路量巨大則可考慮使用memcache作 為分布式緩存。
PHP的加速使用eAccelerator加速器,eAccelerator是一個自由開放源碼PHP加速器,優化和動 态内容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀态下,對伺服器的開銷幾乎完全消除。它還有對腳本起優化作用,以加快其執行效率。 使PHP程式代碼執效率能提高1-10倍。
具體的解決方案有以下幾種:
1、squid + Apache + PHP + eAccelerator
使用Apache負載PHP,使用squid進行緩存,html或圖檔的請求可以直接由squid傳回給使用者。很多大型網站都采用這種架構。
2、nginx/Apache + PHP(fastcgi) + eAccelerator
使用nginx或Apache負載PHP,PHP使用fastcgi方式運作,效率較高。
3、nginx + Apache + PHP + eAccelerator
此方案綜合了nginx和Apache的優點,使用Apache負載PHP,nginx負責解析其他Web請求,使用nginx的rewrite子產品,Apache端口不對外開放。
資料庫
開源的資料庫中,MySQL在性能、穩定性和功能上是首選,可以達到百萬級别的資料存儲,網站初期可以将MySQL和Web伺服器放在一起,但是當通路 量達到一定規模後,應該将MySQL資料庫從Web Server上獨立出來,在單獨的伺服器上運作,同時保持Web Server和MySQL伺服器的穩定連接配接。
當資料庫通路量達到更大的級别,可以考慮使用MySQL Cluster等資料庫叢集或者庫表散列等解決方案。
總的來說,LAMP架構的網站性能會遠遠優于Windows IIS + ASP + Access(例如月光部落格)這樣的網站,可以負載的通路量也非常大,國内的大量個人網站如果想要支撐大通路量,采用LAMP架構是一個不錯的方案。
綜上所述,基于LAMP架構設計具有成本低廉、部署靈活、快速開發、安全穩定等特點,是Web網絡應用和環境的優秀組合。
本文轉自夏雪冬日部落格園部落格,原文連結:http://www.cnblogs.com/heyonggang/p/3190478.html,如需轉載請自行聯系原作者