nginx keepalived 配置

前言:

对于大型web项目来说,必不可少的就是高可用。

那随着公司业务的发展,虽然用nginx做负载均衡仍可以支撑日均百万PV的访问,且运行两年之久未出现单点故障,但仍要考虑避免单点故障导致的业务中断。

keepalived 简介:

keepalived 项目主要的目标是为linux系统和linux基础设施提供负责均衡和高可用。

负载均衡架构依赖于IPVS内核模块提供四层负载均衡,keepalived实现了动态检查和基于负载池的管理服务。另一方面,高可用性是通过VRRP协议实现。简单的框架可以单独或一起提供弹性基础设施。

keepalived配置文件:

keepalived.conf文件由三个配置部分组成:

  • Globals configurations   全局配置
  • VRRP configuration    VRRP配置
  • LVS configuration    LVS配置

约定:

此文不做nginx安装介绍,有关nginx安装可参考前面的文章

系统:采用centos 6.8 最小化

源文件目录:/usr/local/src

master_ip:192.168.1.10

backup_ip:192.168.1.11

vip:192.168.1.20

keepalived官网http://www.keepalived.org/

keepalived master列出的配置项相对要多,可根据情况选择使用。

分别在主备nginx安装配置keepalived

准备:

下载keepalived源码包:

wget http://www.keepalived.org/software/keepalived-1.3.2.tar.gz

安装开发工具:

yum install gcc-c++ openssl-devel

iptables 配置:

关闭iptables,或允许主备互通

iptables -I INPUT -i eth1 -s 192.168.1.11 -j ACCEPT
iptables -I INPUT -i eth1 -s 192.168.1.10 -j ACCEPT

安装keepalived:

解压:

tar zxf keepalived-1.3.2.tar.gz

配置编译安装:

cd keepalived-1.3.2
./configure
make
make install

创建配置文件和服务:

cp -r keepalived/etc/keepalived/ /etc/
cp keepalived/etc/init.d/keepalived.rh.init /etc/init.d/keepalived
cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/

配置keepalived:

master keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]    #接收通知的邮件地址
   }
   notification_email_from [email protected]    #发送邮件通知的地址
   smtp_server 192.168.200.1    #发送邮件的SMTP服务地址,可是ip或域名.可选端口号 (默认25)
   smtp_connect_timeout 30    #smtp连接超时时间秒
   router_id LVS_DEVEL    #主机标识,用于邮件通知
   vrrp_skip_check_adv_addr    
   #vrrp_strict    #严格执行VRRP协议规范,此模式不支持节点单播
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   script_user keepalived_script       # 指定运行脚本的用户名和组。默认使用用户的默认组。
                                           # 如未指定,默认为keepalived_script 用户,如无此用户,则使用root
   enable_script_security                 #如过路径为非root可写,不要配置脚本为root用户执行。
}

vrrp_script chk_nginx_service {    #VRRP 脚本声明
    script "/usr/local/keepalived/nginx-ha-check"    #周期性执行的脚本
    interval 3    #运行脚本的间隔时间,秒
    weight -50    #权重,调整优先级(-255-255)。priority值减去此值要小于备服务的priority值
                            #否则备服务选举为主服务时会失败。
    fall 3              # 检测几次失败才为失败,整数
    rise 2              # 检测几次状态为正常的,才确认正常,整数
    user keepalived_script    # 执行脚本的用户或组
}

vrrp_instance VI_1 {    #VRRP 实例声明
    state MASTER    #实例默认状态,MASTER|BACKUP
    interface eth0    #绑定的接口
    #mcast_src_ip 192.168.1.10        # VRRP 报文使用的源ip地址
    unicast_src_ip 192.168.1.10        # VRRP 报文使用的源ip地址 (alias to mcast_src_ip)
    unicast_peer {            # 不使用VRRP多播,既用单播
      192.168.1.11            #  备节点ip,可以是多个
    virtual_router_id 51    #VRRP 路由标识(-1-255),主备相同
    priority 100    #优先数,-1-255,主服务要大于备服务
    advert_int 1    #VRRP 广告间隔
    authentication {    #主备认证
        auth_type PASS    #认证方式
        auth_pass 1111    #主备需统一
    }
    virtual_ipaddress {    #VRRP 地址,可有多个
        192.168.1.20
    }
    track_script {    #脚本监控状态
        chk_nginx_service    #可加权重,但会覆盖声明的脚本权重值。chk_nginx_service weight -20
    }
}


backup keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_script chk_nginx_service {
    script "/usr/local/keepalived/nginx-ha-check"
    interval 3
    weight -10
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.20
    }
    track_script {
        chk_nginx_service
    }
}

nginx-ha-check 脚本

chmod +x nginx-ha-check
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

STATEFILE=/var/run/nginx-ha-keepalived.state

if [ -s "$STATEFILE" ]; then
    . "$STATEFILE"
    case "$STATE" in
        "BACKUP"|"MASTER"|"FAULT")
                service nginx status
                exit $?
                ;;
        *|"")
                logger -t nginx-ha-keepalived "Unknown state: ‘$STATE‘"
                exit 1
                ;;
    esac
fi

service nginx status
exit $?

启动服务:

service keepalived start

验证:

主备服务安装配置完成后,可通过浏览器方位192.168.1.20地址,同时停掉主nginx服务,再次访问192.168.1.20查看页面

nginx主备服务需要能够确认唯一标识的页面,如在index.html中分别表明主备服务。

同时可观察/var/log/messages 日志信息

时间: 2024-11-10 00:10:10

nginx keepalived 配置的相关文章

CentOS Linux 负载均衡高可用WEB集群之Nginx+Keepalived配置

Nginx+Keepalived实现负载均衡高可用的WEB服务集群,nginx作为负载均衡器,keepalived作为高可用,当其中的一台负载均衡器(nginx)发生故障时可以迅速切换到备用的负载均衡器(nginx),保持业务的连续性. 1.服务器的环境配置及IP分配 操作系统:CentOS release 6.7 (Final) nginx版本:nginx/1.8.0 keepalived版本:Keepalived v1.2.13 Nginx + keepalived服务器的IP分配表 服务器

ubuntu 14.04.3 LTS 版本 通过 nginx + keepalived 配置 高可用 负载均衡集群演示

系统版本:ubuntu 14.04.3 LTS 服务器准备: lb01-> ifconfig 显示结果: 192.168.91.136 作用:安装keepalived 及 nginx lb02-> ifconfig 显示结果: 192.168.91.135 作用:安装keepalived 及 nginx web01-> ifconfig 显示结果: 192.168.91.134 作用:安装nginx 负责展示 index.html页面 web02-> ifconfig 显示结果:

nginx+keepalived配置

一.环境 系统:CentOS 6.4x64位最小化安装 nginx-m:192.168.3.23 nginx-s:192.168.3.24 vip:    192.168.3.25 二.安装nginx 在nginx-m和nginx-s安装nginx,这里使用脚本安装,脚本内容如下 #!/bin/bash   cur_dir=$(pwd) NGINXVERSION='nginx-1.6.0' export LANG=zh_CN.UTF-8   #Source function library. .

Nginx+Keepalived 主备高可用 安装与配置

环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10.219.24.26备nginx + Keepalived :10.219.24.23虚拟IP:10.219.24.100后端tomcat_1:10.219.24.21:8080后端tomcat_2:10.219.24.21:8081 架构与原理: 前端双 Nginx + Keepalived ,Ng

Nginx+Keepalived 实现反代 负载均衡 高可用(HA)配置

Nginx+Keepalived实现反代负载均衡高可用(HA)配置 Nginx+Keepalived实现反代负载均衡高可用配置 OS IP 子网掩码 路由网关 Centos6.6 nginx Keepalived Eth0:192.168.26.210 255.255.252.0 192.168.25.3 VIP:192.168.27.210 Centos6.6 Nginx Keepalived Eth0:192.168.26.211 255.255.252.0 192.168.25.3 VIP

Keepalived && Nginx 高可用性配置

keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用. 运行原理 keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台服务器出现故障(断网,重启,或者本机器上的keepalived crash等),keepalived会从其他的备份机器上重选(还是看服务器设置的权重)一台机器做MASTER并分配同样的虚拟IP,充

Nginx+keepalived(部分配置)

Nginx-S上面也要配置跟Nginx-M上面一样的Nginx代理服务配置 Nginx-M和Nginx-S的keepalived服务配置: 配置文件模板: ! Configuration File for keepalived global_defs { notification_email { [email protected] [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1

centos6中三台物理机配置nginx+keepalived+lvs

以下只是简单的安装配置,并没有测试这套负载,各种参数大家可以自己测试 vip:10.0.50.170 lvs server:10.0.50.183 real server:10.0.50.184/185 183/184/185同步时间,并且安装nginx # ntpdate time.nist.gov # yum install nginx # /etc/init.d/nginx start 在184/185上编写测试页面/usr/share/nginx/html/index.html 183上

nginx+keepalived+tomcat配置高可用web集群

基本架构: 角色 ip 安装软件 作用 主机名 nginx主 192.168.247.129 nginx+keepalived 反向代理 nginxmaster.com nginx备 192.168.247.130 nginx+keepalived 反向代理 nginxsalve.com tomcat1 192.168.247.128 tomcat web服务器 tomcat1.com tomcat2 192.168.247.131 tomcat web服务器 tomcat2.com nfs主