pacemaker + nginx 实现高可用

一、配置nginx
server1上
1)源码安装nginx
可在官方网站www.nginx.org上下载安装包。

[root@server1 ~]# tar zxf nginx-1.14.0.tar.gz
[root@server1 ~]# ls
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  nginx-1.14.0.tar.gz
haproxy-1.4.24.tar.gz             pssh-2.3.1-2.1.x86_64.rpm
nginx-1.14.0
[root@server1 ~]# cd nginx-1.14.0
[root@server1 nginx-1.14.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README

2)源码编译三部曲
configure配置
在这里插入图片描述
这里出现错误提示,根据提示解决相关依赖性。
在这里插入图片描述
再次configure成功,查看也生成了Makefile
在这里插入图片描述
在这里插入图片描述
make开始编译
在这里插入图片描述
make install开始安装
在这里插入图片描述
这样nginx就安装到了我们指定的路径下,可到指定路径下查看
在这里插入图片描述
3)做软连接
在这里插入图片描述
4)调试
在这里插入图片描述
补充说明:
/etc/nginx/conf.d/default.conf ## 配置文件
/usr/share/nginx/html ## 默认发布目录
/usr/share/alsa/pcm/default.conf ## amh控制面板

二、实现nginx负载均衡
1)配置nginx
这里在编译的时候没有指定用户和用户组,所以需要创建nginx用户和用户组,方便管理。
在这里插入图片描述
修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检测配置文件是否正确,以及重新加载:
在这里插入图片描述
2)物理主机上进行测试
进行解析
server1上解析
在这里插入图片描述
物理机上解析
在这里插入图片描述
查看后端服务器server2和server3的测试页是否正确,以及打开http服务。
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述
三、实现高可用
1)在server4上同样配置nginx,可直接将server1的文件拷贝到server4上。
在这里插入图片描述
做软连接,创建nginx用户
在这里插入图片描述
这样server4上的nginx配置就完成了。

2)server1和server4上配置pacemaker
注意:关闭nginx,采用集群来管理nginx服务

server1上进行修改配置文件,启动服务,并将配置文件发给server4
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
开启corosync服务:

/etc/init.d/corosync start

添加vip服务

[root@server1 ~]# crm 
crm(live)# configure 
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.96.100 cidr_netmask=32 op monitor interval=30s
crm(live)configure# commit
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# commit

添加nginx服务,并将nginx服务和vip添加在一个group里面,防止vip和nginx在不同的server上,产生错误。

crm(live)configure# primitive nginx lsb:nginx op monitor interval=30s
crm(live)configure# commit
crm(live)configure# group nginx group vip nginx 
crm(live)configure# commit

物理机上发送fence_xvm.key给server1和server4
安装fence-virt

yum install -y fence-virt-0.2.3-24.el6.x86_64.rpm

添加fence

[root@server1 ~]# crm 
crm(live)# configure
crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server1:vm1;server4:vm4" op monitor interval=30s
crm(live)configure# commit
crm(live)configure# property stonith-enabled=true
crm(live)configure# commit

高可用状态:
在这里插入图片描述
这里可以看到fence和我们的组里面的服务都在server1上,应该fence在server4上,说明server4主机的fence有问题
进入到资源中,cleanup vmfence
在这里插入图片描述
再次查看高可用状态:
在这里插入图片描述
vmfence已经转换到server4上。
测试fence
直接使server1的内核崩溃,查看server是否可以重启

[root@server1 ~]# echo c > /proc/sysrq-trigger

在这里插入图片描述
等待一会后自己重新启动
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/oikinkl/article/details/82959896
今日推荐