1.网站架构的前提(或者说需求)

我们公司是一电子商务的网站,因为线下家具建材项目的推广需求,从而有了我们公司的这个线上网站,在这里我贴一张公司的网站架构图。

总体来说网站规模不是太大,注册人数在150万左右,并发最大也就1500,图上架构没有压力,嘿嘿!

2.公司网站架构的发展

a.起初只有一台服务器,放在公司内部我要这里称为架构0(如图)(出口用防火墙进行NAT转换)

注:我相信大家对这个应该很熟悉,嘿嘿!我们学习的时候都这样做,用一台虚拟机搭一个LAMP平台做测试与开始用,只不过公司里的服务器不是虚拟机,是一台性能比较好的服务器而已,我们公司用的是(Dell 的R610),呵呵!

b.经过一段时间的发展,注册的人数多了一台服务器快顶不住了,其实就是访问特别慢慢,访问的人多了服务器负载比较大,嘿嘿当时的注册人数已经人10万了,特别是搞活动的时候,CPU经常在80%以上,嘿嘿,我们想办法,重新做架构,呵呵 (架构1如下图)

其实也很简单,就是分离了,Web服务器和数据库,分为两服务器都是Dell R610,嘿嘿!有朋友会说了,你们用的是什么Web服务器啊,数据库用的是什么啊,和大家想的一样,就是Apache和Mysql。这个架构用的很多!嘿嘿

c.下面又要爆发了,注册的人数又多了,其实是推广部门牛啊。架构又变了(架构2如下图)

大家也知道电子商务网站,就是卖东西,买的人也比较少,看的人比较多,嘿嘿,特别是像我们种做家具建材的,一台服务器压力也挺大的,于是我们在前面加了一台反向代理服器,缓存一些静态文件(html,images,js……),有效的缓解了压力。我们反向代理服务器是用Squid做的,嘿嘿!硬件配置也不是多好,CPU用的是至强单核的,内存大一点8G!

d.上面的架构用了快半年,我们发现网站访问又开始慢了,于是不得不考虑重新更改架构了(架构3如下图)

我们把那台,Squid反向代理服务器做成了LB(负载均衡服务器),又大后面加了台Web服务器,嘿嘿,已经有四台服务器了,有点规模了呵呵!LB用的是大名鼎鼎的LVS啊,相信不少朋友都知道,嘿嘿!

e.过一段赶时间我们发现,LB,Web,都没有问题,可数据库有点顶不住了,我们就和开发人员讨论,把数据库做成主从数据库,来减轻数据库的压力,嘿嘿!(架构4如下图)

f.过一段时间又发现在问题,我们发现两台Web服务器之间的数据同步有问题,为了根本解决这个问题,我们加了台NFS服务器,嘿嘿(架构5如下图)

备注,其实我们公司网站发展到这个时候,我才来到这里,嘿嘿。眼看来这里也有半年了,公司的网站又有了两次新的变化,嘿嘿!

g.有一天我们发现网站不能访问了,急了,后发现是LB服务器死机了,于是加了台备份机,就是我们常说的LVS+Keepalived,呵呵!(架构6如下图)

现在服务器已经有八台了,我们又加了台监控机做服务器监控与备份,把重要数据备份到监控机上,嘿嘿 !(架构7如下图)

3.总结

有些朋友会说,网站架构那么多知识在你这边也没用多少啊,我想说是的,我们这架构用了以下知识,

a.负载均衡        LVS+Keepalives

b.Web 服务器   Apache

c.Mysql数据库   Mysql 主从数据库

d.文件服器        主NFS,备NFS

e.监制+备份      Cacti与shell脚本

有兴趣的朋友可以参考一下!

4.参考资料

BLOG:

http://ixdba.blog.51cto.com/  南非蚂蚁

http://oldboy.blog.51cto.com/ 老男孩的linux博客

书籍:

构建高可用Linux服务器(第2版)http://book.360buy.com/11053131.html

高性能网站构建实战http://book.360buy.com/11144229.html

企业级Linux服务攻略http://book.360buy.com/10156177.html#none

高性能Linux服务器构建实战:运维监控、性能调优与集群应用http://book.360buy.com/10898510.html

构建高性能Web站点:改善性能和拓展规模的具体做法http://book.360buy.com/10067428.html

如果有朋友Linux基础不好,可以参考鸟哥的Linux两本书:http://book.360buy.com/11018248.html

基于LAMP平台的网站架构(或Web系统架构)的更多相关文章

  1. 浅谈大型web系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

  2. 大型web系统架构详解

    (如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力.本博客会逐步推出一系列的关于大型网站架构.分布式应用.设计模式.架构模式等方面的系列文章) 动态应用,是相对于网站静态内 ...

  3. 转:浅谈大型web系统架构

    浅谈大型web系统架构 动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应 ...

  4. [置顶] 浅谈大型web系统架构

    转载原文:http://blog.csdn.net/dinglang_2009/article/details/6863697 分类: 大规模Web 2.0架构 2011-10-11 18:27 12 ...

  5. 浅谈大型web系统架构(一)

    目录 Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码发布系统   动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl. ...

  6. Java Web系统架构概览

    大型网站系统架构的演进都是随着业务增长不断演进,所有的出发点都是为了满足业务需求.最初访问量下,功能简单时,单体软件可以解决所有问题:后来访问量逐渐增大,功能愈加丰富,此时单体软件的架构逐渐成为开发和 ...

  7. PHP-学习大规模高并发Web系统架构及开发推荐书籍

    以下书籍内容涵盖大型网站开发中几个关键点:高可用.高性能.分布式.易扩展.如果想对大规模高并发Web系统架构及开发有很系统的学习,可以阅读以下书籍,欢迎补充! 一.<Linux企业集群—用商用硬 ...

  8. 【ZZ】浅谈大型web系统架构 | 菜鸟教程

    浅谈大型web系统架构 http://www.runoob.com/w3cnote/large-scale-web-system-architecture.html

  9. 设计高性能大并发WEB系统架构注意点

    设计高性能大并发WEB系统架构注意点 第01:大型架构的演进之路第02(上):分布式缓存第02(下):分布式缓存第03:分布式消息队列第04:分布式数据存储第05:分布式服务框架第06:高性能系统架构 ...

随机推荐

  1. 浅析JAVA设计模式(一)

    第一写技术博客,只是想把自己一天天积累的东西与大家分享.今天在看<大型网站架构和java中间件>这本书时,其中提到代理模式的动态代理.作为java中间件的一个重要基础,我觉的有必要整理和分 ...

  2. iOS中XML的相关知识

    1.什么是XML “当 XML(扩展标记语言)于 1998 年 2 月被引入软件工业界时,它给整个行业带来了一场风暴.有史以来第一次,这个世界拥有了一种用来结构化文档和数据的通用且适应性强的格式,它不 ...

  3. java集合——进度1

    集合类的由来:    对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定.    就使用集合容器进行存储.    集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存 ...

  4. logback使用笔记

    三大主要元素 looger:记录日志 appender:输出目的地 layout:输出格式 必要步骤: 一.引入包: import org.slf4j.Logger; import org.slf4j ...

  5. HTML meta viewport属性说明

    什么是Viewport 手机浏览器是把页面放在一个虚拟的“窗口”(viewport)中,通常这个虚拟的“窗口”(viewport)比屏幕宽,这样就不用把每个网页挤 到很小的窗口中(这样会破坏没有针对手 ...

  6. FolderBrowserDialog(文件夹浏览对话框)

    1.选择数据库目录,在此处不需要新建文件夹,因此屏蔽新建文件夹按钮. C#代码 FolderBrowserDialog df = new FolderBrowserDialog(); //设置文件浏览 ...

  7. 【分享】 高级Visual Basic 编程 清晰pdf+随书源代码光盘

    搞vb6的可能不多,博客园也大多是.net java,近日在网上找到这本好书,想要成为vb高手,这本书不要错过,学完你会发现win32下,vb6还真是无所不能.可贵的是本书的作者是当时vb6 IDE的 ...

  8. aix5下安装python和cx_Oracle

    之前写了一个 linux下安装python和cx_Oracle 这次其实差不多. 1.解压安装包: Python-2.5.4.tar.bz2 cx_Oracle-5.0.4.tar.gz 2.安装py ...

  9. ora_reco_070361 hs message to agent event 等待事件

    现象描述:oracle通过透明网关查询Teradata数据库的表突然变得很慢,小表可以查询出来,大表干脆就出不来. 分析过程: 1.网络可以ping通,小表可以过来,说明网络和网关都没有什么问题的. ...

  10. 解决mac os x 10.9.1 AppStore ‘Use the Purchases page to try again’ 问题

    方法一: 关闭AppStore Terminal: open $TMPDIR/../C 删除 com.apple.appstore 下所有文件后进入AppStore重新下载 方法二: Terminal ...