nginx+keepalived高可用及双主模式

高可用有2中方式。

1、Nginx+keepalived 主从配置

这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠。

2、Nginx+keepalived 双主配置

这种方案,使用两个vip地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于当前架构环境。

1、Nginx+keepalived 主从配置

1.环境如下

lb-01:192.168.96.130  nginx+keepalived-master
lb-02:192.168.96.131  nginx+keepalived-backup
VIP:192.168.75.135
 

nginx+tomcat负载均衡集群参照 nginx+tomcat负载均衡集群参照

两台机器都要安装nginx 配置文件相同

  1. <span style="font-size:18px;">upstream myServer{

  2.  

    server 192.168.96.130:8080;

  3.  

    server 192.168.96.131:8080;

  4.  

    }

  5.  

    server {

  6.  

    listen 80;

  7.  

    server_name localhost;

  8.  

  9.  

    #charset koi8-r;

  10.  

  11.  

    #access_log logs/host.access.log main;

  12.  

  13.  

    location / {

  14.  

    proxy_pass http://myServer;

  15.  

    }

  16.  

    </span>

nginx结合keepalived高可用

为什么使用keepalived呢?使用keepalived就用来做高可用的,提供虚拟VIP

分别在2台机子上安装keepalived

# yum install keepalived -y

查看keepalived版本

# keepalived -v
Keepalived v1.2.13 (11/20,2015)

关于2台keepalived配置文件/etc/keepalived

在130master keepalived配置文件内容如下

  1. <span style="font-size:18px;">global_defs {

  2.  

    notification_email {

  3.  

    [email protected]

  4.  

    [email protected]

  5.  

    [email protected]

  6.  

    }

  7.  

    notification_email_from [email protected]

  8.  

    smtp_server 192.168.200.1

  9.  

    smtp_connect_timeout 30

  10.  

    router_id LVS_DEVEL

  11.  

    }

  12.  

  13.  

    vrrp_script chk_http_port {

  14.  

  15.  

    script "/usr/local/src/check_nginx_pid.sh"

  16.  

  17.  

    interval 2 #(检测脚本执行的间隔)

  18.  

  19.  

    weight 2

  20.  

  21.  

    }

  22.  

  23.  

    vrrp_instance VI_1 {

  24.  

    state MASTER # 备份服务器上将 MASTER 改为 BACKUP 

  25.  

    interface eno16777736 //网卡

  26.  

    virtual_router_id 51 # 主、备机的virtual_router_id必须相同

  27.  

    priority 100   # 主、备机取不同的优先级,主机值较大,备份机值较小

  28.  

    advert_int 1

  29.  

    authentication {

  30.  

    auth_type PASS

  31.  

    auth_pass 1111

  32.  

    }

  33.  

    virtual_ipaddress {

  34.  

    192.168.96.138 // VRRP H虚拟地址

  35.  

    }

  36.  

    }

  37.  

    </span>

在131-backup keepalived配置文件内容如下

  1. <span style="font-size:18px;">global_defs {

  2.  

    notification_email {

  3.  

    [email protected]

  4.  

    [email protected]

  5.  

    [email protected]

  6.  

    }

  7.  

    notification_email_from [email protected]

  8.  

    smtp_server 192.168.200.1

  9.  

    smtp_connect_timeout 30

  10.  

    router_id LVS_DEVEL

  11.  

    }

  12.  

  13.  

    vrrp_script chk_http_port {

  14.  

  15.  

    script "/usr/local/src/check_nginx_pid.sh"

  16.  

  17.  

    interval 2 #(检测脚本执行的间隔)

  18.  

  19.  

    weight 2

  20.  

  21.  

    }

  22.  

  23.  

    vrrp_instance VI_1 {

  24.  

    state BACKUP

  25.  

    interface eno16777736

  26.  

    virtual_router_id 51

  27.  

    priority 90

  28.  

    advert_int 1

  29.  

    authentication {

  30.  

    auth_type PASS

  31.  

    auth_pass 1111

  32.  

    }

  33.  

    virtual_ipaddress {

  34.  

    192.168.96.138

  35.  

    }

  36.  

    }</span>

然后分别启动2台keepalived服务

[[email protected] ~]# systemctl start keepalived.service

[[email protected] ~]# systemctl start keepalived.service

查看虚拟VIP

130-master机器查看

从上面可以看到虚拟VIP地址192.168.96.138

131-backup机器查看

从上面可以看到没有虚拟VIP地址

测试访问虚拟VIP

打开浏览器访问 

此时虚拟VIP可以轮询访问了

模拟故障

把130-master nginx和keepalived停止查看是否还能正常提供服务

[[email protected] sbin]# ./nginx -s stop
[[email protected] sbin]# systemctl stop keepalived.service

此时虚拟VIP已经不再master上了

客户端打开浏览器访问是否正常访问

130nginx和keepalived挂了也不影响服务

查看131backup机器VIP情况

此时虚拟VIP 已经在131机器上

那么如何实现nginx+keepalived双主模式呢?

1.其实只是需要更改下keepalived配置文件即可,配置文件实例如下

增加新的VIP192.168.96.139,192.168.75.138是130机器上主虚拟VIP,192.168.96.139是131机器上主虚拟VIP

130的keepalived配置文件内容如下

  1. ! Configuration File for keepalived

  2.  

  3.  

    global_defs {

  4.  

    notification_email {

  5.  

    [email protected]

  6.  

    [email protected]

  7.  

    [email protected]

  8.  

    }

  9.  

    notification_email_from [email protected]

  10.  

    smtp_server 192.168.200.1

  11.  

    smtp_connect_timeout 30

  12.  

    router_id LVS_DEVEL

  13.  

    }

  14.  

  15.  

    vrrp_script chk_http_port {

  16.  

  17.  

    script "/usr/local/src/check_nginx_pid.sh"

  18.  

  19.  

    interval 2 #(检测脚本执行的间隔)

  20.  

  21.  

    weight 2

  22.  

  23.  

    }

  24.  

  25.  

    vrrp_instance VI_1 {

  26.  

    state MASTER

  27.  

    interface eno16777736

  28.  

    virtual_router_id 51

  29.  

    priority 100

  30.  

    advert_int 1

  31.  

    authentication {

  32.  

    auth_type PASS

  33.  

    auth_pass 1111

  34.  

    }

  35.  

    virtual_ipaddress {

  36.  

    192.168.96.138

  37.  

    }

  38.  

    }

  39.  

  40.  

    vrrp_instance VI_2 {

  41.  

    state BACKUP

  42.  

    interface eno16777736

  43.  

    virtual_router_id 52

  44.  

    priority 90

  45.  

    advert_int 1

  46.  

    authentication {

  47.  

    auth_type PASS

  48.  

    auth_pass 1111

  49.  

    }

  50.  

    virtual_ipaddress {

  51.  

    192.168.96.139

  52.  

    }

  53.  

    }

131的keepalived配置文件内容如下

  1. ! Configuration File for keepalived

  2.  

  3.  

    global_defs {

  4.  

    notification_email {

  5.  

    [email protected]

  6.  

    [email protected]

  7.  

    [email protected]

  8.  

    }

  9.  

    notification_email_from [email protected]

  10.  

    smtp_server 192.168.200.1

  11.  

    smtp_connect_timeout 30

  12.  

    router_id LVS_DEVEL

  13.  

    }

  14.  

  15.  

    vrrp_script chk_http_port {

  16.  

  17.  

    script "/usr/local/src/check_nginx_pid.sh"

  18.  

  19.  

    interval 2 #(检测脚本执行的间隔)

  20.  

  21.  

    weight 2

  22.  

  23.  

    }

  24.  

  25.  

    vrrp_instance VI_1 {

  26.  

    state BACKUP

  27.  

    interface eno16777736

  28.  

    virtual_router_id 51

  29.  

    priority 90

  30.  

    advert_int 1

  31.  

    authentication {

  32.  

    auth_type PASS

  33.  

    auth_pass 1111

  34.  

    }

  35.  

    virtual_ipaddress {

  36.  

    192.168.96.138

  37.  

    }

  38.  

    }

  39.  

  40.  

  41.  

    vrrp_instance VI_2 {

  42.  

    state MASTER

  43.  

    interface eno16777736

  44.  

    virtual_router_id 52

  45.  

    priority 100

  46.  

    advert_int 1

  47.  

    authentication {

  48.  

    auth_type PASS

  49.  

    auth_pass 1111

  50.  

    }

  51.  

    virtual_ipaddress {

  52.  

    192.168.96.139

  53.  

    }

  54.  

    }

分别启动2台lb上nginx和keepalived服务

[[email protected] sbin]# ./nginx
[[email protected] sbin]# systemctl start keepalived.service

130查看虚拟ip

131查看虚拟ip

客户端测试访问虚拟VIP

访问虚拟VIP:192.168.96.138结果如下

访问虚拟VIP:192.168.96.139结果如下

模拟故障

把130服务停止

查看130虚拟VIP是否存在结果如下

没了

测试访问虚拟VIP**

从上面结果可以看到,即使130机器发生了故障也不影响使用,这样也利用131资源了

此时查看一下131虚拟ip结果情况如下

注:此时虚拟VIP地址都已经在lb-02机器上了

原文地址:https://www.cnblogs.com/littlewrong/p/9491901.html

时间: 2024-08-26 18:15:20

nginx+keepalived高可用及双主模式的相关文章

Nginx+keepalived高可用(双主模式)

负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.由于业务扩展,网站的访问量不断加大,负载越来越高.现需要在web前端放置nginx负载均衡,同时结合keepalived对前端nginx实现HA高可用.介绍下Nginx和keepalive1.Nginx Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:Nginx作为负载均衡服务器:Nginx 既可以在内部直

keepalived实现nginx的高可用(双主模型)

实验环境: RS1:rip(172.16.125.7),安装httpd软件包: RS2:rip(172.16.125.8),安装httpd软件包: director1(7-1.lcs.com):vip(172.16.125.100),dip(172.16.125.5),安装nginx.keepalived软件包. director2(7-2.lcs.com):vip(172.16.125.110),dip(172.16.125.6),安装nginx.keepalived软件包. 首先关闭所有节点

haproxy高可用以及双主模式(二)

haproxy主备 虚拟VIP:192.168.33.130 把haproxy-01的配置文件拷贝到haproxy-02机器相应的目录即可 [email protected] haproxy]# scp haproxy.cfg [email protected]:/etc/haproxy/ haproxy.cfg                                     100% 3520     3.4KB/s   00:00 启动haproxy-02服务 [[email pro

Nginx+keepalived(高可用双主模式)

Nginx+keepalived(高可用双主模式) tips:前面已经介绍了nginx+keepalived高可用主从模式,今天补充下高可用的双主模式,均可以作为主机使用 server1:192.168.237.128             VIP1:192.168.237.10 server2:192.168.237.129             VIP2:192.168.237.20 vim /etc/keepalived/keepalived.conf //编辑配置文件,增加一段新的v

nginx+keepalived高可用

nginx+keepalived高可用 1.环境如下 lb-01:192.168.75.136/24  nginx+keepalived-master lb-02:192.168.75.137/24  nginx+keepalived-backup VIP:192.168.75.135/24   rs-01:192.168.75.133/24 apache rs-02:192.168.75.13424 apache lb操作系统centos7.rs操作系统ubuntu14.04 2.lb-01/

Nginx+Keepalived高可用集群应用实践

Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令行或脚本实现管理,并且没有针对LVS节点的健康检查功能.为了解决LVS的这些使用不便问题,Keepalived诞生了,可以说,Keepalived软件起初是专为解决LVS的问题而诞生的.因此,Keepalived和LVS的感情很深,他们的关系如同夫妻一样,可以紧密地结合,愉快地工作.Keepaliv

LVS + Keepalived 高可用群集 【DR模式】

简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

安装配置keepalived2.0.18,实现nginx+keepalived高可用

一.环境服务器系统版本:CentOS 7两台服务器,一台做主节点,一台做备用节点:192.168.1.200(主节点)192.168.1.201(备用节点) 二.安装keepalived 2.0两台服务器都安装上 keepalived 2.0. 1.安装依赖包(libnl库-简化netlink 协议对象的实现.gcc-GNU编译器套件.openssl-devel-包含开发支持各种密码算法和协议的应用程序所需的文件的库包)#yum install -y libnl-devel libnl3-dev

配置nginx+keepalived高可用负载均衡的时候。主从服务器都出现了VIP 阿里云问题

配置nginx+keepalived高可用负载均衡的时候.主从服务器都出现了VIP 出现这问题的场景是在阿里VPS云服务器网络环境中,因为路由交换层禁用了ARP的广播限制,造成KEEPALIVE主备协议无法通过广播的方式进行通信,造成主备两台服务器都强占HAVIP地址,出现同时两台服务器都有VIP地址的情况出现,必须通过配置来指定IP的两台服务器间进行通讯(阿里说明文档中解释只能支持两台使用同一个HAVIP地址),基于以下方法可以的情况下,多备方式用同样的方式也应该可行 ,有需要的兄弟可以测试下