LAMP网站架构方案分析

news/2024/5/20 15:12:18/文章来源:https://blog.csdn.net/wulantian/article/details/9719613

LAMP网站架构方案分析

 

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.luyixian.cn/news_show_820042.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

PHP集成环境-windows系统下PHP集成环境高并发网站解决方案

PHPCUSTOM再度更新,动态界面引擎酷炫华丽,WIN系统高承压首选PHP环境   功能大全添加了网页克隆,以及新的承压模块,后期我会制作出更多实用功能 官方下载地址:http://www.lccee.com/content-185.html  下图界面特效…

SEO之如何建立良好的内部链接

随着百度,Google等搜索引擎慢慢成为网民上网的入口,SEO(Search Engine Optimizition)搜索引擎优化,慢慢成为了网络营销的一种强有力的手段。网上有很多文章,教程,也有很多相关博客(如…

mysql服务器优化加速_如何通过宝塔面板优化服务器来加快网站运行速度

最近码云笔记对网站进行了一次大的优化改版,不仅在风格上,而且由原先的虚拟主机换到了服务器并使用了宝塔面板,在网站加载速度上提升了一个质的飞跃。我也相信现在有不少的个人站长的服务器都使用了宝塔面板,因为不仅能很方面的配…

杂草丛生HTML5网站模板

杂草丛生HTML5个人网站模板是一款野草到处生长的HTML5网站模板下载。 模板地址:http://www.huiyi8.com/sc/8780.html 转载于:https://www.cnblogs.com/xkzy/p/3765298.html

url格式一定只有一个问号_如何建设一个更易于搜索引擎关键词优化的企业网站...

网站规划设计阶段就必须考虑SEO优化,网站建设过程中涉及到的栏目结构、程序代码等都必须符合SEO规范,有助于加快网站关键词排名上首页的速度,也有利于关键词排名稳定度。然而,网站的初步规划和设计需要大量的深入讨论、沟通和合作…

SEO的艺术

comScore数据分析,数据很多,举个最新的例子 导航型搜索信息型搜索 找地方买东西调查研究交易型搜索 网上贸易用户搜索周期 用户实现大部分时间集中在左上角阴影最深的地方 搜索引擎工作原理 任务本身的复杂度 访问网上所有页面的爬行器算法的限制 …

Angular4搭建在线可竞拍网站

安装依赖包 –save-dev 是你开发时候依赖的东西,–save 是你发布之后还依赖的东西。 npm install jquery --save npm install bootstrap --save 安装类型描述文件,因为是js,ts无法识别 npm install types/jquery --save npm install types/…

利用jsoup爬虫优酷、土豆等视频网站rss利用solr创建索引

1、前提: 了解jsoup、solr等相关的技术、会搭建solr 2、我将爬虫的网站都写在一个xml中,所以先要解析这个xml,得到其网址,然后定时去爬虫 [java] view plaincopyprint?package com.tmzs.pc.jsoup; import java.io.File; im…

解决此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站的问题...

在ASP.NET MVC项目中,使用AJAX向控制器发送GET请求获取JSON数据时,出现这个错误:"此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavi…

SpringCloud实战--新闻门户网站-李熠-专题视频课程

SpringCloud实战--新闻门户网站—149人已学习 课程介绍 本套课程从实战为出发点,带领大家深入了解SpringCloud,摒弃了一些理论知识,一切皆实战。课程收益学习完本套课程的学员都能很容易搭建基于SpringCloud的微服务架构。讲师介绍李熠 更…

利用某网站的SQL注入漏洞getshell

某学校网站存在SQL注入漏洞,可以利用sqlmap对齐进行SQL注入攻击,并获得webshell。 漏洞URL: http://www.xxx.com/news1.php?id1执行攻击命令: sqlmap -u "http://www.xxx.com/news1.php?id1" -p id --current-db -…

某网站登录页面存在用户手机号信息泄露

漏洞利用 输入用户名,界面将弹出手机号,看似手机号被隐藏了,但是通过抓取http包,发现后台其实返回了手机号,由此可知,改手机号只在前端做了隐藏处理。 而且该接口没有做任何校验,可以任意调用&…

使用IWMS的网站打开显示“未能加载文件或程序集”,解决方案

首先,会出现这样的问题原因是: 1、应用程序集里面有些事互相引用的,所以 问题有多种情况,第一、这个应用程序集出问题了; 2、它所依赖的那个程序集出问题了; 3、在项目生成的时候,代码里面有逻辑…

服务器上的php4.0网站连接sql2005服务器连接不上,SQLServer之创建链接服务器

创建链接服务器注意事项当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINNK数据库可以像访问本地数据库一样访问远程数据库表中的数据。链接服务器允许访问针对OLE DB数据源的分布…

【项目】仿知乎网站项目梳理

GitHub地址:GitHub - vicotorz/zhangdizhihu: 仿“知乎”问答系统 开发流程:DataBase-->Model-->Dao-->Service-->Controller-->Test SQL 建表语句: 评论:comment id int(11), content …

https协议 ppt 下载卷_超全的PPT制作辅助网站和工具

超全的PPT制作辅助网站和工具很多小伙伴在制作 PPT 的时候,常常会遇到不知道该如何入手的问题,特别是对于:图片该如何选用?渐变风格的背景图去哪找?炫光的背景是怎么生成的?手机可以下载高清图片么&#xf…

Nancy之给我们的网站添加自定义图标

Nancy之给我们的网站添加自定义图标 原文:Nancy之给我们的网站添加自定义图标当我们在做一个网站时,可能经常会有这样一个需求,要给我们做的网站添加一个自定义的图标。 在Nancy中,默认是的下面这样 一个妹子的头像,其实也是挺好看…

我的第一个javaweb学习----模仿社区网站(三)

写注册界面的后台 首先得建立一张数据库表,用于存储用户信息的userinfo表,包括注册时间,昵称,签名等 受理注册信息的servlet 然后在servlet包下建立一个注册的Regservlet的Servlet类,用于接收网页传来的信息&#xff0…

什么专业学html css,认识HTML、css的重要性-专业SEO技术教程(27)

认识HTML、css的重要性-专业SEO技术教程(27)通过之前的学习,相信大家已经对SEO有了一定的认识。今天起我们将正式开始SEO的学习。看到这里有些朋友或许有这样的疑问,我们不是要学习SEO吗?为什么要讲解HTML的一些知识呢?这个就要从…