PHP+MySQL网站架构方面的一些认识

数据库 MySQL 数据库运维
我们将介绍PHP+MySQL网站架构方面的一些认识,目前网站架构一般分成负载均衡层、WEB层和数据库层。

目前网站架构一般分成负载均衡层、WEB层和数据库层

负载均衡层-- LVS,

WEB层--使用了nginxweb服务器,

数据库层--我们使用了db集群方案。

网站概况

  浏览量(PV) 独立访客(UV) 访问次数(VV) 独立IP 发帖量 注册会员数 跳出率 平均在线时长
今日 80,973 37,999 42,573 27,979 624 140 72.27% 00:07:56
昨日 179,250 74,584 88,986 54,021 1,400 285 77.48% 00:10:00
历史平均 154,020 60,927 71,924 47,883 1,936 201 78.24% 00:10:00
历史*** 238,993 94,647 110,552 72,692 6,602 468 89.04% 00:11:02

1 代码提交系统

这是在代码进入生产环境前的必须要经历的。

在测试服务器上开发OK后,我们提交给SVN服务器,然后进入代码提交服务器。

进入代码提交服务器后,有两步要走的,我理解为一个拉,一个推。

a 我们使用SVN up 将本地文件更新

b 使用rsync推送到生产环境服务器

以上两部分 我分别写成一个shell文件

运行 bash xxx.sh 即可

2 用户访问网站的流程,基本是这样的:

网站使用了动态CDN,起到加速的作用,我们先把动态CDN放到一边,说说下面发生的事情。

在前端我们使用了LVS,关于LVS我使用百科上的文章,给予解释下:  

LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡。LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器。

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

一般来说,LVS集群采用三层结构,其主要组成部分为:

A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。

C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

A LVS

1 核心是它的负载调度器

2 塔负责维护一个路由表

3 实时监控真实server健康状况

B LVS必须有个热备 hot back,万一LVS坏了,那就完蛋了。这样,当LVS万一坏了,可以备份LVS接管工作。

C 源站192.168.1.156/157 对外虚拟一个VIP 115。DNS解析域名的时候就解析到这个VIP上。至于具体用户访问是哪台服务器,对用户而言是透明的,LVS根据 IP负载均衡技术 为用户分配源站地址。

D 两台源站服务器,为了可以保证某些地方的数据同步,我做了:

1 两台源站服务器之间的缓存通过NFS挂载,保持同步;

2 crontab中写入计划任务,同步相关ssi文件;

E 后端DB的连接,我们使用了2主2从DB集群

两台主库77、78对外虚拟成VIP 110,原理,当任何一台DB挂掉后,另外一台立即接管其。两台db互为主从。通过keepalived监测各自生存状态。

F 主从库之间通过binlog保持同步。所有binlog均通过主库发出。其余三台从库(其中一台为主库,角色为从库)接受binlog,维护各自数据成分。

G 另外我们是有了一台附件服务器。减轻WEB压力。

H 另外,还有图片服务器/小图标服务器,可以放在web自身,通过域名区分。其实图片、附件、css等哪儿并不重要,只要可以通过域名访问到,是完全可以的。

我们通过博瑞系统,对网站进行监控。 对于web站点,首屏时间是考核的重点,任何一个用户不想等待3s钟页面还没有加载完,用户体验非常差。

这是在加入CDN后,对全国各监测点进行相关的监测和性能的评测。

原文连接:http://www.cnblogs.com/wangjiafang/archive/2012/06/12/2546314.html

 

 

责任编辑:彭凡 来源: 博客园
相关推荐

2010-05-12 15:41:21

MySQL数据库

2011-05-18 13:50:34

MySQL数据库网络安全

2021-09-15 10:31:52

网络安全网络攻击网络威胁

2021-12-04 14:51:38

隐私数据安全网络安全

2010-10-08 16:32:59

MySQL语句

2018-03-26 12:01:30

数据库PostgreSQL命令

2009-08-13 16:41:12

C#结构

2010-06-02 15:24:15

PHP+MySQL

2010-06-10 16:06:46

路由选择协议

2009-11-26 10:32:57

PHP代码优化

2009-12-11 11:09:12

PHP信息函数

2009-12-11 14:17:36

ASP.NET Coo

2009-09-23 17:29:54

三层框架

2023-10-27 08:00:44

Spring浏览器机制

2013-07-24 16:09:12

MYSQL注入

2018-02-05 22:09:01

云计算CIO企业上云

2019-10-30 14:58:45

MVCAndroid表现层

2012-04-23 14:04:56

CSS网站

2009-11-25 09:23:47

PHP引用&符号

2015-12-03 11:45:31

PHP7 发布
点赞
收藏

51CTO技术栈公众号