西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)php教程 → 采用LAMP網(wǎng)站架構(gòu)方案分析

采用LAMP網(wǎng)站架構(gòu)方案分析

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:本站原創(chuàng)時(shí)間:2010/8/20 10:54:11字體大。A-A+

作者:不詳點(diǎn)擊:47次評論:0次標(biāo)簽: LAMP

  • 類型:ACT動作游戲大小:300M語言:中文 評分:10.0
  • 標(biāo)簽:
立即下載

LAMP(Linux-Apache-MySQL-PHP)網(wǎng)站架構(gòu)是目前國際流行的Web框架,該框架包括:Linux操作系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器,MySQL數(shù)據(jù)庫,Perl、PHP或者Python編程語言,所有組成產(chǎn)品均是開源軟件,是國際上成熟的架構(gòu)框架,很多流行的商業(yè)應(yīng)用都是采取這個(gè)架構(gòu),和Java/J2EE架構(gòu)相比,LAMP具有Web資源豐富、輕量、快速開發(fā)等特點(diǎn),微軟的.NET架構(gòu)相比,LAMP具有通用、跨平臺、高性能、低價(jià)格的優(yōu)勢,因此LAMP無論是性能、質(zhì)量還是價(jià)格都是企業(yè)搭建網(wǎng)站的首選平臺。

  對于大流量、大并發(fā)量的網(wǎng)站系統(tǒng)架構(gòu)來說,除了硬件上使用高性能的服務(wù)器、負(fù)載均衡、CDN等之外,在軟件架構(gòu)上需要重點(diǎn)關(guān)注下面幾個(gè)環(huán)節(jié):使用高性能的操作系統(tǒng)(OS)、高性能的網(wǎng)頁服務(wù)器(Web Server)、高性能的數(shù)據(jù)庫(Databse)、高效率的編程語言等。下面我將從這幾點(diǎn)對其一一討論。

  操作系統(tǒng)

  Linux操作系統(tǒng)有很多個(gè)不同的發(fā)行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一個(gè)發(fā)行版都有自己的特色,比如RHEL的穩(wěn)定,Ubuntu的易用,基于穩(wěn)定性和性能的考慮,操作系統(tǒng)選擇CentOS(Community ENTerprise Operating System)是一個(gè)理想的方案。

  CentOS(Community ENTerprise Operating System)是Linux發(fā)行版之一,是RHEL/Red Hat Enterprise Linux的精簡免費(fèi)版,和RHEL為同樣的源代碼,不過,RHEL和SUSE LE等企業(yè)版,提供的升級服務(wù)均是收費(fèi)升級,無法免費(fèi)在線升級,因此要求免費(fèi)的高度穩(wěn)定性的服務(wù)器可以用CentOS替代Red Hat Enterprise Linux使用。

LAMP網(wǎng)站架構(gòu)方案分析

 

Web服務(wù)器、緩存和PHP加速

  Apache是LAMP架構(gòu)最核心的Web Server,開源、穩(wěn)定、模塊豐富是Apache的優(yōu)勢。但Apache的缺點(diǎn)是有些臃腫,內(nèi)存和CPU開銷大,性能上有損耗,不如一些輕量級的Web服務(wù)器(例如nginx)高效,輕量級的Web服務(wù)器對于靜態(tài)文件的響應(yīng)能力來說遠(yuǎn)高于Apache服務(wù)器。

  Apache做為Web Server是負(fù)載PHP的最佳選擇,如果流量很大的話,可以采用nginx來負(fù)載非PHP的Web請求。nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,Nginx以它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。Nginx不支持PHP和CGI等動態(tài)語言,但支持負(fù)載均衡和容錯,可和Apache配合使用,是輕量級的HTTP服務(wù)器的首選。

  Web服務(wù)器的緩存也有多種方案,Apache提供了自己的緩存模塊,也可以使用外加的Squid模塊進(jìn)行緩存,這兩種方式均可以有效的提高Apache的訪問響應(yīng)能力。Squid Cache是一個(gè)Web緩存服務(wù)器,支持高效的緩存,可以作為網(wǎng)頁服務(wù)器的前置cache服務(wù)器緩存相關(guān)請求來提高Web服務(wù)器的速度,把Squid放在Apache的前端來緩存Web服務(wù)器生成的動態(tài)內(nèi)容,而Web應(yīng)用程序只需要適當(dāng)?shù)卦O(shè)置頁面實(shí)效時(shí)間即可。如訪問量巨大則可考慮使用memcache作為分布式緩存。

  PHP的加速使用eAccelerator加速器,eAccelerator是一個(gè)自由開放源碼PHP加速器,優(yōu)化和動態(tài)內(nèi)容緩存,提高了性能PHP腳本的緩存性能,使得PHP腳本在編譯的狀態(tài)下,對服務(wù)器的開銷幾乎完全消除。它還有對腳本起優(yōu)化作用,以加快其執(zhí)行效率。使PHP程序代碼執(zhí)效率能提高1-10倍。

  具體的解決方案有以下幾種:

  1、squid + Apache + PHP + eAccelerator

  使用Apache負(fù)載PHP,使用squid進(jìn)行緩存,html或圖片的請求可以直接由squid返回給用戶。很多大型網(wǎng)站都采用這種架構(gòu)。

  2、nginx/Apache + PHP(fastcgi) + eAccelerator

  使用nginx或Apache負(fù)載PHP,PHP使用fastcgi方式運(yùn)行,效率較高。

  3、nginx + Apache + PHP + eAccelerator

  此方案綜合了nginx和Apache的優(yōu)點(diǎn),使用Apache負(fù)載PHP,nginx負(fù)責(zé)解析其他Web請求,使用nginx的rewrite模塊,Apache端口不對外開放。

  數(shù)據(jù)庫

  開源的數(shù)據(jù)庫中,MySQL在性能、穩(wěn)定性和功能上是首選,可以達(dá)到百萬級別的數(shù)據(jù)存儲,網(wǎng)站初期可以將MySQL和Web服務(wù)器放在一起,但是當(dāng)訪問量達(dá)到一定規(guī)模后,應(yīng)該將MySQL數(shù)據(jù)庫從Web Server上獨(dú)立出來,在單獨(dú)的服務(wù)器上運(yùn)行,同時(shí)保持Web Server和MySQL服務(wù)器的穩(wěn)定連接。

  當(dāng)數(shù)據(jù)庫訪問量達(dá)到更大的級別,可以考慮使用MySQL Cluster等數(shù)據(jù)庫集群或者庫表散列等解決方案。

  總的來說,LAMP架構(gòu)的網(wǎng)站性能會遠(yuǎn)遠(yuǎn)優(yōu)于Windows IIS + ASP + Access(例如月光博客)這樣的網(wǎng)站,可以負(fù)載的訪問量也非常大,國內(nèi)的大量個(gè)人網(wǎng)站如果想要支撐大訪問量,采用LAMP架構(gòu)是一個(gè)不錯的方案。

  綜上所述,基于LAMP架構(gòu)設(shè)計(jì)具有成本低廉、部署靈活、快速開發(fā)、安全穩(wěn)定等特點(diǎn),是Web網(wǎng)絡(luò)應(yīng)用和環(huán)境的優(yōu)秀組合。
 

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)