热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP+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后,对全国各监测点进行相关的监测和性能的评测。


推荐阅读
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
author-avatar
重新入梦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有