通过上一次课程的学习,我们知道Nginx+keepalived主从配置,始终有一台服务器处于空余状态,那如何更好的利用起来呢,我们需要借助Nginx+keepalived双主架构来实现,如下图通过改装后的网络架构图;

直接master1上keepalived.conf配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

在另外一台服务器33.10上同样配置,只需要把相应的state对改就OK,把原先的master改成backup,把backup改成master即可,然后在两台服务器分别启动keepalived服务即可,然后访问两个VIP即可。如下粘贴一下master2配置文件内容:

! Configuration File for keepalived

global_defs {

notification_email {

wgkgood@163.com

}

notification_email_from wgkgood@163.com

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/data/sh/check_nginx.sh"

interval 2

weight 2

}

# VIP1

vrrp_instance VI_1 {

state BACKUP

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 151

priority 90

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  1111

}

virtual_ipaddress {

192.168.33.188

}

track_script {

chk_nginx

}

}

# VIP2

vrrp_instance VI_2 {

state MASTER

interface eth0

lvs_sync_daemon_inteface eth0

virtual_router_id 152

priority  100

advert_int 5

nopreempt

authentication {

auth_typePASS

auth_pass  2222

}

virtual_ipaddress {

192.168.33.199

}

track_script {

chk_nginx

}

}

最后需要在两台Nginx主服务器上配置/data/sh/check_nginx.sh脚本,内容如下:

#!/bin/bash

#auto check nginx  process

killall  -0   nginx

if

[[ $? -ne 0 ]];then

/etc/init.d/keepalived stop

fi

如下图情况,两个VIP在一台服务器,是由于另外一台服务器down机,VIP都漂移到本机网卡下。

双主在企业实施中需要注意的地方:

1、配置文件必须设置不同的VRRP名称,同时优先级和VIP设置也同样需要注意。

2、网站总访问量为两台Nginx之和,可以写脚本实现。

3、两个VIP存在后,外网如果需要访问,需要做域名映射到两个VIP上即可。

4、这样就是基于DNS负载均衡模式。

5、需要配置监控实时监控VIP访问状态是否正常。

最新文章

  1. PHP使用OPENSSL RSA加密解密数据
  2. js基础练习二之简易日历
  3. 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法
  4. TCP 粘包/拆包问题
  5. 安装SQL2008的时候 出现System.Configuration.ConfigurationErrorsException: 创建 userSettings/Microsoft.SqlServe
  6. Team Foundation Server 2013 with Update 3 Install LOG
  7. Wordpress更换主题之后出错
  8. BZOJ 2594: [Wc2006]水管局长数据加强版( LCT )
  9. 19. leetcode 100. Same Tree
  10. lesson - 1 - IP /DNS /cat !$ /putty 知识扩充
  11. SPI知识总结
  12. Android 内置群组,联系人
  13. Netstat状态分类
  14. Idea的Maven项目引入模块
  15. Uncaught DOMException: Failed to execute 'removeChild' on 'Node': The node ……
  16. WEB服务器控件对应生成的HTML标签 及最常应用事例
  17. Unity Lighting - Light Probes 光照探针(十)
  18. 获得客户端详细信息以及每个进程的sql语句
  19. op bug 修复计划
  20. Redis Sentinel 介绍

热门文章

  1. eclipse配置虚拟路径后,每次启动tomcat都会虚拟路径失效的问题解决
  2. 通过自定义的URL Scheme启动你的App
  3. iOS enum 定义与使用
  4. [转]【Java】内部类(Inner Class)如何创建(new)
  5. JAVA BASE64
  6. socket编程--相关函数--sendto();read();
  7. Linuxc - define 与 typedef的区别
  8. 把一个DIV放到另一个div右下角
  9. AI_深度学习概论
  10. python_利用高阶函数实现剪枝函数