2024年6月8日发(作者:)
/
我们下面来实现一个架构,heartbeat+drbd+nfs实现mysql和网站数据的同步,keepalived
实现nginx的高可用,而用nginx和dns轮询实现负载均衡。
架构说明目录规划/usr/local/src/lnmp:用来存放源码工具等等
/data:用来存放所有数据和NFS以及DRBD的挂载
/data/shell:用来存放所有管理脚本
/data/mysql:用来挂载DRBD的mysql资源,以供mysql存放数据库
/data/wwwnfs:用来挂载DRBD生成的www资源,以供两个节点挂载到各个节点的/data/www
目录,以供论坛等程序数据使用
/data/www:用来挂载NFS资源,用来存放论坛(网站)等程序数据
拓扑工作原理内网:
1,DRBD网络存储创建出两个资源,一个mysql给mysql数据库同步用,一个www给web(论
坛)数据NFS共享挂载用,虚拟出两个虚拟IP,一个是 192.168.1.100,用来连接数据库,
一个是192.168.1.200,用来给节点挂载NFS
注意:NFS底下挂载了三次:DRBD挂载一次,文件系统挂载一次,客户端挂载一次
2,Heartbeat来实现DRBD的HA,同时虚拟出两个内网IP,并管理NFS,MySQL的启动和关
闭
外网:
1,两个节点都用Nginx做均衡器,通过内网调度负载两个节点,实现内部均衡
2,DNS配置双IP对应一个域名的方式来实现DNS轮询,实现外网均衡
3,Keepalived使用双主(master)配置虚拟出两个虚拟IP:节点一 12.12.12.100和节点二
12.12.12.200,同时共外网访问,两个节点互为主从关系,当某个节点挂掉的时候,另外一
个节点将同时是两个资源的master,同时拥有两个虚拟IP,实现资源转移。
我们知道DNS的缺点就是生效慢,分配资源不合理,理论上有可能把所有的请求都发送给同
一节点,导致均衡不合理导致所有资源不可用,这里我们由于有了NGINX内部负载,就不怕
DNS轮询不均衡了,因为NGINX内部有严谨的调度方式,不管那台请求有多少,在内部都能
实现理想的调度,这样就能把 DNS负载均衡和NGINX完美结合,是硬件资源得到合理的利
用,然后利用keepalive保证了每个节点的可靠性,几乎完美!
拓扑图如下:
架构实现LNMP架构配置配置LNMp架构需要注意两点:
注意一:这里MYSQL都不要初始化,不要启动!后面有专门的配置的
注意二:nginx所有端口都改成 8080,因为一会还要安装nginx来做均衡器并对外提供服
务,所以不要用默认的80
注意三、nginx和php-fpm运行的用户都是www。
安装配置NFS1、安装NFS
1. yum install nfs-utils nfs4-acl-tools portmap
2、配置/etc/exports
1. /data/wwwnfs
192.168.1.0/24(rw,,no_root_squash,sync,anonuid=502,anongid=502)
注意:
/data/wwwnfs:就是给两个节点挂载的目录,所有网站程序都放在这里,实现论坛程序等数
发布评论