LAMP(LinuxApacheMySQLPHP)網站架構是目前國際流行的Web框架該框架包括Linux操作系統Apache網絡服務器MySQL數據庫PerlPHP或者Python編程語言所有組成產品均是開源軟件是國際上成熟的架構框架很多流行的商業應用都是采取這個架構和Java/JEE架構相比LAMP具有Web資源豐富輕量快速開發等特點微軟的NET架構相比LAMP具有通用跨平台高性能低價格的優勢因此LAMP無論是性能質量還是價格都是企業搭建網站的首選平台
對於大流量大並發量的網站系統架構來說除了硬件上使用高性能的服務器負載均衡CDN等之外在軟件架構上需要重點關注下面幾個環節使用高性能的操作系統(OS)高性能的網頁服務器(Web Server)高性能的數據庫(Databse)高效率的編程語言等下面我將從這幾點對其一一討論
操作系統
Linux操作系統有很多個不同的發行版如Red Hat Enterprise LinuxSUSE Linux EnterpriceDebianUbuntuCentOS等每一個發行版都有自己的特色比如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使用
服務器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程序代碼執效率能提高倍
具體的解決方案有以下幾種
squid + Apache + PHP + eAccelerator
使用Apache負載PHP使用squid進行緩存html或圖片的請求可以直接由squid返回給用戶很多大型網站都采用這種架構
nginx/Apache + PHP(fastcgi) + eAccelerator
使用nginx或Apache負載PHPPHP使用fastcgi方式運行效率較高
nginx + Apache + PHP + eAccelerator
此方案綜合了nginx和Apache的優點使用Apache負載PHPnginx負責解析其他Web請求使用nginx的rewrite模塊Apache端口不對外開放
數據庫
開源的數據庫中MySQL在性能穩定性和功能上是首選可以達到百萬級別的數據存儲網站初期可以將MySQL和Web服務器放在一起但是當訪問量達到一定規模後應該將MySQL數據庫從Web Server上獨立出來在單獨的服務器上運行同時保持Web Server和MySQL服務器的穩定連接
當數據庫訪問量達到更大的級別可以考慮使用MySQL Cluster等數據庫集群或者庫表散列等解決方案
總的來說LAMP架構的網站性能會遠遠優於Windows IIS + ASP + Access(例如月光博客)這樣的網站可以負載的訪問量也非常大國內的大量個人網站如果想要支撐大訪問量采用LAMP架構是一個不錯的方案
綜上所述基於LAMP架構設計具有成本低廉部署靈活快速開發安全穩定等特點是Web網絡應用和環境的優秀組合
From:http://tw.wingwit.com/Article/program/PHP/201405/30956.html