LAMP 技術研發

Linux Apache MySQL PHP
LAMP 技術研發

LAMP(Linux-Apache-MySQL-PHP)網站架構,是目前國際流行的 Web 框架,包括:

Linux 操作系統,Apache 網絡服務器,MySQL 數據庫,Perl、PHP 或者 Python 編程語言。所有組成產品均是開源軟件,是國際上成熟的架構框架。很多流行的商業應用都是採取 LAMP 架構,與 Java/J2EE 架構相比,LAMP 具有 Web 資源豐富、輕量、快速開發等特點。與微軟的 .NET 架構相比,LAMP 具有通用、跨平台、高性能、低價格的優勢。因此,LAMP 無論是性能、質量、價格都是企業搭建網站的首選平台。

linux 1

對於大流量、大並發量的網站系統架構來說,除了硬件上使用高性能的服務器、負載均衡、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使用。

 

  • 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倍。

 

  • 數據庫

 

開源的數據庫中,MySQL 在性能、穩定性和功能上是首選,可以達到百萬級別的數據存儲,網站初期可以將 MySQL 和 Web 服務器放在一起,但是當訪問量達到一定規模後,應該將 MySQL 數據庫從 Web Server 上獨立出來,在單獨的服務器上運行,同時保持 Web Server 和 MySQL 服務器的穩定連接。

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

總的來說,LAMP 架構的網站性能會遠遠優於 Windows IIS + ASP + Access(例如月光博客)這樣的網站,可以負載的訪問量也非常大,國內的大量個人網站如果想要支撐大訪問量,採用 LAMP 架構是一個不錯的方案。

綜上所述,基於LAMP架構設計具有成本低廉、部署靈活、快速開發、安全穩定等特點,是Web網絡應用和環境的優秀組合