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:就是给两个节点挂载的目录,所有网站程序都放在这里,实现论坛程序等数