pacemaker+corosync实现nginx的负载均衡和高可用

一 架构图和原理

在这里插入图片描述
1)pacemaker+corosync/heartbeat 软件架构



1、Pacemaker - 集群资源管理器(CRM),负责启动和停止服务,而且保证它们是一直运行着的以及某个时刻某服务只在一个节点上运行(避免多服务同时操作数据造成的混乱),利用集群基础构建提供的信息和成员管理能力,探测并恢复节点以及在其控制下的资源的失效切换,以实现高可用性。

2、Corosync - 消息层组件,管理成员关系、消息和仲裁。

3、Resource Agents - 资源代理,用来控制服务启停,监控服务状态的脚本集合,这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},包括配置IP地址的也是。

2)corosync和heartbeat对比

1 共同点:
都属于消息网络层,对外提供服务和主机的心跳检测,在监控的主服务被发现当机之后,即时切换到从属的备份节点,保证系统的可用性.
2 不同点
Heartbeat只能为所有的资源配置一个主服务,而corosync则允许为不同的资源组配置不同的主服务。
Heartbeat在主服务server1当机之后,切换到从服务节点server2;还会把之前的主节点server1继续放入从属节点列表之内。而corosync则不会存在这个情况
在corosync中,其会自行处理配置文件的同步问题,heartbeat则无此功能。
Heartbeat只支持2个节点,而corosync则支持多个节点的集群,支持把资源进行分组,按照组进行资源的管理,设置主服务,自行进行启停
    故此可见,一般来说都是选择corosync来进行心跳的检测,搭配pacemaker的资源管理系统来构建高可用的系统。
    

二 实验步骤

本次实验都是在防火墙和senliux关闭情况下操作的
1 nginx 服务搭建(server1 server4)

  1. 安装nginx服务及其安装包
    yum install -y gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel acpid
    注意:软件包在编译安装nginx时必须安装,否则报错
gcc / gcc-c++:gcc编译器,编译nginx需要。

pcre / pcre-devel:Perl 语言兼容正则表达式(Perl Compatible Regular Expressions,用C语言编写的正则表达式函数库),nginx的rewrite模块正则表达式使用。

openssl / openssl-devel:nginx的ssl模块使用。

zlib / zlib-devel:nginx的gzip模块使用。

acpid:电源管理软件包

2)下载安装包,解压和源码安装
tar zxvf nginx-1.15.3.tar.gz -C /usr/local/
cd /usr/local/nginx-1.15.3/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-threads
make && make install
cd /usr/local/nginx
du -sh

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值