原创

Nginx keepalived实现高可用负载均衡详细配置步骤

前面我们已经讲述了Keepalived-1.3.5编译安装和制作快捷启动方式,下面本站素文宅博客(blog.yoodb.ocm)主要说一说如何在两台服务器分布部署Nginx,通过keepalived实现高可用。


Keepalived-1.3.5编译安装步骤和启动方式详解(在线安装方式)

https://blog.yoodb.com/yoodb/article/detail/1378


keeplived离线安装openssl-devel依赖包(离线安装方式)

https://blog.yoodb.com/yoodb/article/detail/1434


准备工作:

Linux操作系统Centos6.5,两台接入服务器公用一个虚拟IP(VIP)123.57.47.154

用途IP
MASTER192.168.1.1
BACKUP192.168.1.2


配置Nginx

两台接入服务器Nginx配置完全相同,配置文件目录/usr/local/nginx/conf/nginx.conf,配置内容如下:

upstream blog.yoodb.com { 
      server  192.168.1.1; 
      server  192.168.1.2; 
} 
  
server{ 
    listen 80; 
    server_name blog.yoodb.com; 
    location / { 
        proxy_pass         http://127.0.0.1:8081; 
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}


配置keepalived

keepalived的配置文件/etc/keepalived/keepalived.conf,注意主、从服务器的keepalived配置相关联有所不同,配置如下:

主Master:

! Configuration File for keepalived

global_defs {
notification_email {
        yoodb.com@gmail.com
   }

   notification_email_from yoodb.com@gmail.com
   smtp_server smtp.gmail.com
   smtp_connect_timeout 30
   router_id nginx_master

}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        123.57.47.154
    }
}


从Backup:

! Configuration File for keepalived

global_defs {
notification_email {
        yoodb.com@gmail.com
   }

   notification_email_from yoodb.com@gmail.com
   smtp_server smtp.gmail.com
   smtp_connect_timeout 30
   router_id nginx_backup

}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 99
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
        123.57.47.154
    }
}


验证:

先后启动主、从服务器上keepalived,执行/etc/init.d/keepalived start命令(在上一篇中讲述了如何制作快捷启动Keepalived编译和安装步骤分析详解https://blog.yoodb.com/yoodb/article/detail/1378)

利用ip a命令查看主服务器虚拟IP是否绑定成功

停止主服务器上的keepalived,执行/etc/init.d/keepalived stop命令访问123.57.47.154是否依然能够访问web页面,再次利用ip a命令查看从服务器虚拟IP是否绑定成功。

启动主服务器上的keepalived,看看主服务器能否重新接管虚拟IP。

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

  1. #1

    strangepeople (2017/08/10 17:31:26)回复
    吃饭咯~先收藏走一波

  2. #2

    嗯嗯 (2017/08/07 15:08:21)回复
    以后肯定用到这技术,先收藏了。

  3. #3

    飘忽不定 (2017/08/07 15:04:52)回复
    问一下lvs和realserver全用公网ip吗,如果realserver有许多,这改怎么解决阿?

    路人甲 (2017/08/07 17:04:34)回复
    都可以可以使用公网ip,也可以使用内网ip。但是使用内网ip的话,就要对vip在防火墙上做映射。

  4. #4

    祖国一片云 (2017/08/07 15:04:25)回复
    涮涮不走心啊,涮涮不走心

  5. #5

    嘟嘟 (2017/08/07 14:59:57)回复
    我只是来凑人数的

    下划线 (2017/08/07 15:03:52)回复
    爽爽是群花,是群里最漂亮的

    卐追求卓绝卍 (2017/08/07 15:02:53)回复
    我是来给嘟嘟征婚的

分享:

支付宝

微信