2014年1月31日星期五

Architect_003:LAMP网站软件架构方案(摘录+整理)

LAMP(Linux-Apache-MySQL-PHP)网站软件架构是国际上成熟的Web架构,该架构包括:
(1)Linux 操作系统
(2)Apache 动态网页服务器
(3)Nginx 静态网页服务器
(4)Squid Web缓存服务器
(5)Perl、PHP、Python 编程语言以及PHP加速器:eAccelerator
(6)MySQL 数据库
所有组成产品均是开源软件,很多流行的商业应用都是采取这个架构。



1. 高性能的操作系统:CentOS
基于稳定性和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating System)。
CentOS 是Linux发行版之一,是Red Hat Enterprise Linux的精简免费版。

2. 高性能的动态网页服务器:Apache
Apache是世界排名第一的web服务器。
优点:开源、稳定、模块丰富。
缺点:内存和CPU开销大,当进程数超过200个后,web响应速度明显缓慢,说明性能有损耗。
因此Apache不适合负载静态页面,只适合负载动态页面,比如PHP。

3. 高性能的静态网页服务器:Nginx
Nginx以事件驱动的方式编写,所以有非常好的性能和稳定性。
尤其对于静态文件的响应能力远高于Apache,因此Nginx适合负载静态页面。
Nginx同时也可以作为一个反向代理服务器完成负载均衡。

4. 高性能的Web缓存服务器:Squid
Web服务器的缓存也有多种方案,Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。
Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,把Squid放在Apache的前端来缓存Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。
如果访问量巨大则可考虑使用memcached作为分布式缓存。

5. PHP加速器:eAccelerator
eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。
它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。

6. 高性能的数据库:MySQL
开源的数据库中,MySQL在性能、稳定性和功能上是首选,可以达到百万级别的数据存储,网站初期可以将MySQL和Web服务器放在一起,但是当访问量达到一定规模后,应该将MySQL数据库从Web Server上独立出来,在单独的服务器上运行,同时保持Web Server和MySQL服务器的稳定连接。
当数据库访问量达到更大的级别,可以考虑使用MySQL Cluster等数据库集群或者库表散列等解决方案。

在今天,全球已有2000万个网站使用LAMP。
LAMP国外案例:
(1)汉莎航空电子订票系统
(2)德意志银行的网上银行
(3)华尔街在线的金融信息发布系统
LAMP国内案例:
(1)LAMP兄弟连:http://www.lampbrother.net/item/porfolio.php
(2)国内最大的教育社区:k12 教育网
(3)鲨威体坛:http://sports.tom.com/

总的来说,LAMP网站软件架构可以满足大量用户访问和高并发请求,同时具有成本低廉、部署灵活、快速开发、安全稳定等特点,是Web网络应用和环境的优秀组合。

参考文献:
1. http://www.williamlong.info/archives/1908.html
2. http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html
3. http://wenku.baidu.com/view/e222e7886529647d2728522e.html

没有评论: