Linux下搭建Nginx+heartbeat

一、理论概述

HA高可用,又被叫做双机热备。

高可用原理:两台机器A和B,正常是A提供服务,B闲置,当A宕机或服务宕掉,切换到B继续提供服务,使用心跳进行通信和选举

heartbeat原理:心跳检测和资源接管两个部分。集群中的主机互相发送报文,告诉对方自己当前的状态,如果在一定时间内未收到对方报文,认定对发死亡

常用的高可用软件:heartbeat、keepalived

脑裂:双方无法进行心跳信息的传递,导致无法获取其他节点状态信息

heartbeat 适合做服务高可用

keepalived适合做lvs高可用

两种检测的方式:互相发送报文,第二种ping网关或者别的第三方

心跳线的作用(内网IP):互相发送报文

实验:AB两台虚拟机上都装nginx和heartbeat,AB两台虚拟机都把heartbeat起来,但不启动nginx。

这时主节点上的nginx会自动启动,并获得VIP。

正常情况下是A提供服务,VIP在A上,如果A上的nginx出现故障停止工作,VIP会漂移到B上,B上的nginx也会自动启动,以此达到高可用效果

二、搭建

重点:时间同步

各个集群节点能互相解析

(1)三个配置文件:

秘钥文件:authkeys

heartbeat服务配置文件:ha.cf

资源管理配置文件:haresouce

(2)准备环境

1.两台虚拟机都装heartbeat和nginx

2. hostname分别为:node1 node2

3.两台机器都添加两个内网地址:192.168.100.20,192.168.100.30(用来模拟心跳线)
        4. 关闭防火墙  service iptables stop
        5. 关闭SElinux  setenforce 0
        6.添加解析 vim/etc/hosts          #增加内容如下:

192.168.1.104  node1                        #外网地址和主机名
            192.168.1.106  node2                        #外网地址和主机名

7. 两个机器都安装heartbeat    libnet  nginx
             #yum  install -yheartbeat*    libnet  nginx  
             #yum  install -y heartbeat*   libnet  nginx

  (3)主节点:

 #cd /usr/share/doc/heartbeat-3.0.4/
   #cp  authkeys  ha.cf haresources   /etc/ha.d/        #拷贝模版配置文件 
   #cd /etc/ha.d                                           
   #vim  authkeys                   #设置互相检测心跳时的加密方式
   #vim haresources                 #设置主节点,备用上边不用修改                    
   node1  192.168.1.109/24/eth0:0 nginx   #主节点的主机名/外网IP/掩码/虚拟接口/高可用服务
   #vim  ha.cf                                    
    debugfile /var/log/ha-debug            #记录调试信息
    ogfile /var/log/ha-log                 #记录日志信息
    logfacility     local0                 #日志级别
    keepalive 2                            #发送心跳报文的间隔          
    deadtime 30                            #等待30秒,如果没收到对方心跳,视为宕机  
    warntime 10                            #10秒收不到,记录日志 
    initdead 60                            #网络启动时间     
    udpport 694                            #设置广播通信使用的端口
    ucast eth1 192.168.100.20        #第一种:广播的形式检测对方心跳线信息(对方,内网IP)
    auto_failback on                 #主节点恢复后,是否接管从节点的服务
    respawn hacluster /usr/lib64/heartbeat/ipfail   #配合ping语句指定的ping node来检测网络的连通性
    node    zhaijunming              #主节点
    node    zhaijunming1             #从节点
    ping 192.168.1.254               #第二种检测方式,ping 第三方稳定的节点                 #两种检测方式:  1.互相发送心跳报文   2.ping第三方稳定的节点

(4)备节点

1.拷贝配置文件到 从服务器上

scp ha.cf  haresources authkeyszhaijunming1:/etc/ha.d/   #把配置文件拷贝到从上

2.备节点修改/etc/ha.cf       vim  /etc/ha.d/ha.cf          # 只需要更改一个地方,修改为对方的心跳线地址
        ”ucast eth1192.168.100.20 “改为   ”ucasteth1 192.168.100.30“

三、测试

主:1.启动heartbeat:等待一分钟左右,执行ifconfig -a 查看是否有VIP,然后nginx服务是否自动起来了

备:2.启动heartbeat,不能有VIP,nginx也不能自动启动

停止主节点上的httpd,看是否vip转到备用节点,备节点httpd服务是否启动

时间: 2024-10-14 04:55:55

Linux下搭建Nginx+heartbeat的相关文章

linux下搭建nginx+php(FastCGI)+mysql运行环境

一.安装环境 1.CentOS5.5 2.php5.4 3.MySQL5.5.19 二.安装程序依赖库和开发环境 为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装, 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc gli

linux下搭建nginx+mysql+apache

对于开发人员来说,进行Web开发时可以用Apache进行网站测试,然而当一个Web程序进行发布时,Apache中并发性能差就显得很突出,这时配置一台Nginx服务器显得尤为重要. 以下是配置Nginx服务器的方法: 1.下载Xshell和Xftp用于管理Linux系统和上传文件 2.下载aliyun一键web安装包(包含Nginx.PHP.Mysql)  点此下载 3.将aliyun一键安装包上传到root目录下 4.执行命令:cd /root 进入root目录 5.执行命令:ls –l查看目录

Linux下搭建nginx php环境

下载安装所需包 openssl-1.0.1i.tar.gz zlib-1.2.8.tar.gz pcre-8.35.tar.gz nginx-1.7.4.tar.gz 以上为nginx依赖文件 libmcrypt-2.5.7.tar.gz php-5.3.28.tar.gz 以上为php依赖文件 依次安装 1.安装openssl-1.0.1i.tar.gz [[email protected] mrms]# tar -zxvf openssl-1.0.1i.tar.gz [[email prot

Linux下搭建Nginx服务器

Nginx 安装 一. 安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二. 安装 PCRE(PCRE 作用是让 Nginx 支持 rewrite 功能) 1. 下载 PCRE 安装包,下载地址: https://sourceforge.net/projects/pcre/files/pcre/8.42/pcre-8.42.tar.gz 可以去网页下载也可以直接用命令下载:

玩玩负载均衡---在window与linux下配置nginx

最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了.好在其设置都不是很麻烦. 本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了.      首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题).要说的是,在windows下配

Linux下搭建PHP开发环境(LAMP)

LAMP:Linux+Apache+Mysql/MariaDB+Perl/PHP/Python 安装方法如下: 注:Ubuntu下可使用sudo su 命名切换到root用户. 开始安装之前,先执行EZHTTP安装前的准备工作. 一.使用screen(可选) 由于编译安装Nginx Apache PHP MySQL等软件会花费比较长的时间,难免会出现由于网络意外中断而导致安装也中断了,所以为了避免此问题,可以使用screen来安装. screen的使用方法如下: 1.安装screen ubunt

【转】玩玩负载均衡---在window与linux下配置nginx

最近有些时间,开始接触负载均衡方面的东西,从硬件F5再到Citrix Netscalar.不过因为硬件的配置虽然不复杂,但昂贵的价格也让一般用户望而却步(十几万到几十万),所以只能转向nginx,squid这类有反向代理功能的软件了.好在其设置都不是很麻烦. 本文就之前所做过的安装和配置步骤做一下总结分享出来,以免日后忘记了.      首先是windows系统,这里建议使用window 2003企业版,而不要作用win7(太新了,我遇到无法启动nginx的问题).要说的是,在windows下配

Nginx系列-1.Linux下安装Nginx

Nginx系列-1.Linux下安装Nginx 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置Nginx+A

Linux下搭建DNS服务器

一.修改Linux主机名 1.hostname 主机名 [[email protected] named]# hostname ifs.com 2.vi /etc/hosts [[email protected] named]# vi /etc/hosts 127.0.0.1 ns.ifs.com ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ~ 3.vim /etc/sysconfi