共计 1861 个字符,预计需要花费 5 分钟才能阅读完成。
如何看待 PHP+MySQL 网站架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
目前网站架构一般分成负载均衡层、WEB 层和数据库层
负载均衡层 – LVS,
WEB 层 – 使用了 nginxweb 服务器,
数据库层 – 我们使用了 db 集群方案。
网站概况
浏览量(PV)
独立访客(UV)
访问次数(VV)
独立 IP
注册会员数
平均在线时长
80,973
37,999
42,573
27,979
72.27%
00:07:56
179,250
74,584
88,986
54,021
1,400
77.48%
00:10:00
历史平均
154,020
60,927
71,924
47,883
1,936
78.24%
00:10:00
历史最高
238,993
94,647
110,552
72,692
6,602
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 后,对全国各监测点进行相关的监测和性能的评测。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。