LAMP网站架构方案分析

news/2024/5/16 23:30:04/文章来源:https://blog.csdn.net/wauit/article/details/44589021

       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网站架构方案分析

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_753719.aspx

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

相关文章

网站缓存技术总结( ehcache memcache redis)

网站技术高速发展的今天,缓存技术已经成为大型网站的一个关键技术,缓存设计好坏直接关系的一个网站访问的速度,以及购置服务器的数量,甚至影响到用户的体验。 网站缓存按照存放的地点不同,可…

Python脚本爬取网站美女照片

上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来。今天有时间,写了点代码,爬去了网站的所有照片。附上战果!图片实在是太多了,爬半个多…

网站优化基础教程:如何挖掘更多的长尾关键词?六种挖掘关键词的方法!

网站优化的第一步就是确定关键词,然后在做优化,那么新站应该怎么确定关键词,又该怎么去发掘更多的长尾关键词呢?来和发迹创业网一起看看。 为什么要做长尾关键词? 主要原因是长尾容易优化,首先我们需要确定…

网站目录扫描工具

目录 御剑 dirbuster Webdirscan 网站后台扫描工具都是利用目录字典进行爆破扫描,字典越多,扫描到的结果也越多。常用的网站后台扫描工具御剑、dirbuster和Webdirscan,不管哪个工具,要想扫描到更多的东西,都必须要有一个强大的目录字典! 御剑 御剑也是一款好用的网站…

Social engineering tookit 钓鱼网站

目录 Set 钓鱼攻击 网站克隆 Set Set(Social engineering tookit)是一款社会工程学工具,该工具用的最多的就是用来制作钓鱼网站。 Kali中自带了该工具。 钓鱼攻击 在应用程序中的漏洞利用工具集里面。 打开之后

网站另类推广玩法心得

互联网营销,越来越多的个人或是企业希望通过网上营销将自己的产品或服务推广出去,但是这些站的具体运营呢,多数仅仅停留在把站做起来,而没有太好的推广手段,而如何有访问呢?人们首先想到的就是 SEO,因为通…

绕过网站WAF(图片绕过)

当我们在渗透一个网站的时候,很多时候,会遇到下面这种情况。网站装有WAF,把我们的SQL注入语句给拦截了。 这就是网站的安全狗 此时,我们的渗透会陷入僵局。到底应该如何才能让我们的语句绕过安全狗的检查呢? 我们可以…

绕过CDN查找网站真实ip

目录 CDN 如何判断网站是否有CDN? 绕过CDN查找网站真实ip CDN 在渗透测试过程中,经常会碰到网站有CDN的情况。CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说的简单点,就是一组在不同…

网站服务器架构设计

目录 一:网站用的是云服务器,只有一个IP地址,并且是真实网站ip地址 二:网站采用了Nginx代理服务器,我们并不能知道网站服务器的真实ip地址 三:网站通过NAT映射,我们并不能知道网站服务器真实…

网站图片需要付费禁止下载?这个网站神器轻松搞定!

有时候我们需要下载一个有版权或者无版权的图片作为个人使用,但是有些网站是无法直接下载图片的,需要付费购买才行,今天给大家共享一个很简单的方法,只要使用这个网站就可以解决网页需要付费的图片免费下载了; 使用方法…

大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么…

网站安全通用防护代码在ASP.NET MVC 中的应用实例(接上一篇)

处理Get、Post等网站请求及Cookie数据监测等,防护网站。 拦截攻击者注入恶意代码,防御诸如跨站脚本攻击(XSS)、SQL注入攻击等恶意攻击行为。 1、在Global.asax.cs文件中添加如下代码: #region 网站安全防护代码/// &l…

手把手教你配置阿里云服务器搭建网站(超详细图文)系列1

前文概述 出于好奇,我用学生优惠租了一台阿里云服务器,打算做一些Java web的开发,但是毕竟是第一次接触这样的东西,还是比较陌生,在这个过程中遇到了一些问题(肯定会遇到问题的),但是…

利用Blind XXE Getshell(Java网站)

目录 Blind XXE读取任意文件Getshell 这是一道类似CTF的题目。话不多说 访问链接,如下。于是随便输入任意数字,点击Create Account 抓包重放,发现是XML提交的格式。于是乎想到了XXE漏洞 尝试读取文件,发现结果无变化。这就陷入了僵局。因为这里结果无变化有可能是目标网站…

信息收集之利用Shodan搜索ico相同的网站

在进行红蓝对抗的时候,想查找某个集团的子网站,于是,我们可以利用Shodan搜索相同 ico 的网站。 import mmh3 import requests import urllib3 urllib3.disable_warnings() from requests.packages.urllib3.exceptions import InsecureReques…

网站单点登录

至于什么是单点登录,举个例子,如果你登录了msn messenger,访问hotmail邮件就不用再次登录。 一般单点登录都需要有一个独立的登录站点,一般具有独立的域名,专门的进行注册,登录,注销等操作 我们为了讨论方便…

https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题...

一:什么是https SSL(Security Socket Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安全性,同时SSL安全机制是依靠…

分析网站登录处的加密算法

在某次渗透过程中,碰到了一个登录的网站。于是随便输了个 admin/123456进行登录尝试,准备burp抓包,进行爆破。 发现 password 字段进行了加密,粗略一看很像是MD5加密。但是仔细对比,发现123456的MD5值为:e10adc3949ba59abbe56e057f20f883e ,而不是包中的 9f27a19583a386…

分析网站登录处的加密算法(二)

前言:在渗透测试过程中,我们经常会碰到登录处用js加密字段的情况。在大多数情况下,看到这种加密方式,我们都会放弃对该登录处进行暴力破解。本文主要讲解对js加密进行绕过,以达到爆破或绕反爬的目的! 对登录…

流程图不会画?不用担心,使用在线网站绘制流程图简单方法介绍

流程图的使用是帮助绘制者将一件事情的操作方法,操作流程进行绘制,这样在对这件事进行实战操作时就会让大家可以更快的接受这件事情,从而获得更高的准确率,那怎样使用画图工具绘制流程图呢?  1.在绘制时我们主要是通…