首页 > 经验 > 关键词 > php最新资讯 > 正文

LAMP网站架构方案分析

2009-08-30 21:51 · 稿源:月光博客

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.williamlong.info/archives/1908.html

  • 相关推荐
  • 大家在看
  • linux系统入门用什么书好

    有朋友问我为何学习Linux,其实我刚开始学习时也有这个疑问,不知道它的用处何在,它的优点何在,就会有这样的疑问,只是看到好多人都在学习,很好奇,自己也想学一下,但又不知道为何要学它。后来我就在网上和图书馆找Linux相关的知识和书籍,对其知识有了全面的了解后决定是不是要学习,就不会盲目跟风,明白自己为何要学习是很重要的。言归正传,为何要学习Linux呢,首先了解一下Linux,它是一套可以供大家免费使用的类Unix操作

  • linux系统入门用什么书好

    有朋友问我为何学习Linux,其实我刚开始学习时也有这个疑问,不知道它的用处何在,它的优点何在,就会有这样的疑问,只是看到好多人都在学习,很好奇,自己也想学一下,但又不知道为何要学它。后来我就在网上和图书馆找Linux相关的知识和书籍,对其知识有了全面的了解后决定是不是要学习,就不会盲目跟风,明白自己为何要学习是很重要的。言归正传,为何要学习Linux呢,首先了解一下Linux,它是一套可以供大家免费使用的类Unix操作

  • docker怎么安装MySQL docker安装MySQL教程

    把MySQL放进Docker,总共需要几步?本次就通过社区版容器安装2个mysql实例,看一下部署有多简单。

  • 为什么MySQL默认隔离级别是RR

    曾多次听到“MySQL为什么选择RR为默认隔离级别”的问题,其实这是个历史遗留问题,当前以及解决,但是MySQL的各个版本沿用了原有习惯。历史版本中的问题是什么,本次就通过简单的测试来说明一下。

  • MySQL统计库表大小都是多少

    统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。

  • MySQL怎么按指定字符合并及拆分 详细实例分析

    按照指定字符进行合并或拆分是经常碰到的场景,MySQL在合并的写法上比较简单,但是按指定字符拆分相对比较麻烦一点(也就是要多写一些字符)。本文将举例演示如何进行按照指定字符合并及拆分。

  • mysql怎么处理大表在不停机的情况下增加字段

    MySQL中给一张千万甚至更大量级的表添加字段一直是比较头疼的问题,遇到此情况通常该如果处理?本文通过常见的三种场景进行案例说明。

  • 用php源码搭建二维码加密支付平台

    今天给大家介绍的项目-"用php源码搭建二维码加密支付平台",可以说,有一定的技术门槛,有一定的壁垒,因为需要搭建网站并且运营。正是因为有一定的门槛,需要学习和准备一些东西,才能挡住大多数用户的进入,才能长久的赚取利润。这些技术门槛,和需要准备的一些东西,我今天会详细的,手把手的教大家,如果你肯学习,并且有一定的网络基础,我相信可以很快突破难点,搭建成功。一旦搭建成功,运用一些推广的手段,后期

  • MySQL8.0窗口函数做数据排名统计详细教程

    MySQL8.0新增了窗口函数,大大的方便了做数据排名统计的人,很多朋友还不清楚怎么用MySQL8.0做数据统计排名,下面就来为大家分享一篇文章。

  • MySQL从库实用技能教程 巧用slave_exec_mode参数

    MySQL从库实用技能教程,巧用slave_exec_mode参数。​想必从库异常中断的情况不在少数,其中报错信息中 1032 及 1062 的错误占了不少的比重。

  • 著名开源项目Apache Doris开发者徐冬奇加入微博广告技术团队

    著名开源项目、在线分析型分布式数据库Apache Doris的主要开发者,原百度凤巢广告系统高级架构师、阿里巴巴数据智能商业化技术负责人徐冬奇,已于近日入职微博广告技术团队,担任微博广告技术总架构师。据百度内部人士爆料,Doris最初是只为解决凤巢广告报表需求而设计的专用系统。2012年徐冬奇在前百度首席架构师James Peng(前Google 核心工程师,现自动驾驶独角兽小马智行CEO)指导下,作为Dor

  • Win10新预览版19645推送:修复中文输入法无法切换、Linux内核从镜像剥离

    今晨,微软面向快速通道(Fast Ring)的Insider会员推送新预览版,操作系统版本号Build 19645。经查,Build 19645属于mn_release分支,在微软切换到rs_prerelease之前,我们的确很难看到新功能

  • MySQL的user表被删除了怎么办 user表被清空解决办法

    ​近期就有人遇到user表内容被清空的情况。如果发生了此情况,千万不要慌,更不能隐瞒问题(今天这位朋友就比较惨,别人删了也没敢告知,结果binlog已经清理了),这样有利于恢复。现在针对几种情况,进行恢复操作的演示。

  • AppClips是什么功能 AppClips怎么使用

    苹果iOS14系统中加入了一个全新的AppClips功能,这个功能是可以让用户不下载全部应用的情况下就可以使用该应用的功能,那么AppClips是怎么使用,这里我们来了解下AppClips功能的介绍。

  • Apple TV 6搭载A12X处理器:全新散热方案镇压、性能超iPad Pro

    最新一代iPad Pro从A12X处理器升级为A12Z,不过两者性能上几无明显变化,在移动处理器中,依然是最能打的存在。有国外爆料人称,新一代Apple TV电视盒子将预装A12X仿生处理器,就目前了解到的

  • Space X将60颗Starlink卫星送入太空

    DoNews 6月4日消息(记者 刘文轩)Space X今天宣布,在载人发射成功4天之后,60颗Starlink卫星在美国东部时间21点25分被成功被送入轨道。这60颗卫星采用猎鹰9号运载火箭发射,其中一颗带有可部署的遮光板,为降低未来卫星亮度进行测试。Starlink是SpaceX推出的一项通过近地轨道卫星群,提供覆盖全球的告诉互联网接入服务。马斯克在2015年宣布了这项计划,计划利用卫星取代传统的地面通讯设备,帮助偏远地区接入宽带网络,并为城市?

  • 传新iPad Air将采用USB-C接口 iPad mini保留Lightning接口

    据外媒报道,根据中国供应链传出来的消息显示,苹果据传的第四代iPad Air将采用USB-C接口,据悉,该技术首次出现在苹果平板中则是在 2018 年。新平板预计会在今年下半年推出。Mac Otakara周二援引知情人士消息称,苹果传闻中的10. 8 英寸“iPad Air”将会成为继 2018 年iPad Pro发布后的第二款配备USB-C接口的iPad。

  • 苹果宣布其设备将全面转向“Apple Silicon”计算体系

    在 "历史性的一天",苹果公司CEO蒂姆-库克宣布其计算平台将全面转向自建体系“Apple Silicon”。库克现场讨论了Mac发展史上的三大转变,回顾了Power PC和英特尔。并表示,Mac在定制芯片上的历程已经超过 10 年其从iPhone开始的芯片架构提供了最佳的每瓦特性能,新系统的设计力求带来功率和性能的最佳平衡点。

  • 智能变革:英特尔HPC高性能计算与AI人工智能解决方案和实例

    在竞争日益激烈的环境中,数据中心作为传统信息化的基础,伴随着全面AI时代与5G、物联网的不断临近,企业希望获得出色的模拟和建模、人工智能(AI)和大数据分析功能,以便取得突破性的发现与创新,而高性能计算(HPC)基础设施能够为这些工作负载带来优势。 企业如果想在相同的 HPC 基础设施中运行 HPC、大数据分析和 AI 工作负载,优化的资源调度降低计算成本需要一个全面的融合HPC和AI集群的解决方案。 英特尔? 精选解决方案基于英

  • Serverless架构的前世今生

    一、Serverless简介云计算的不断发展,涌现出很多改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。Serverless架构的出现,带来了跨越式的变革。Serverless下主机管理、操作系统管理、基础软件的部署运维、资源分配和扩缩容能力全部由云厂?

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议

热文

  • 3 天
  • 7天