| 
                         在172.16.28.130 和172.16.28.131 上安装ipvs和keepalived: 
- # 安装ipvs 
 - sudo yum install ipvsadm 
 - # 安装keepalived 
 - sudo yum install keepalived 
 
  
在172.16.28.132 和172.16.28.133 上安装nginx: 
- # 安装nginx 
 - sudo yum install nginx 
 
  
需要注意的是,在两台nginx服务器上需要将防火墙关闭,否则lvs+keepalived的两台机器就无法将请求发送到两台nginx服务器上来: 
- # 关闭防火墙 
 - systemctl disable firewalld.service 
 
  
查看两台负载均衡机器是否支持lvs: 
- sudo lsmod |grep ip_vs 
 - # 如果看到如下结果,则说明是支持的 
 - [zhangxufeng@localhost ~]$ sudo lsmod|grep ip_vs 
 - ip_vs 145497 0 
 - nf_conntrack 137239 1 ip_vs 
 - libcrc32c 12644 3 xfs,ip_vs,nf_conntrack 
 
  
如果上述命令没有任何结果,则执行sudo ipvsadm  命令启动ipvs之后,再通过上述命令进行查看即可。启动ipvs之后,我们就可以在/etc/keepalived/ 目录下编辑keepalived.conf  文件,我们以172.16.28.130 机器作为master机器,master节点配置如下: 
- # Global Configuration 
 - global_defs { 
 -  lvs_id director1 # 指定lvs的id 
 - } 
 - # VRRP Configuration 
 - vrrp_instance LVS { 
 -  state MASTER   # 指定当前节点为master节点 
 -  interface ens33    # 这里的ens33是网卡的名称,通过ifconfig或者ip addr可以查看 
 -  virtual_router_id 51   # 这里指定的是虚拟路由id,master节点和backup节点需要指定一样的 
 -  priority 151   # 指定了当前节点的优先级,数值越大优先级越高,master节点要高于backup节点 
 -  advert_int 1   # 指定发送VRRP通告的间隔,单位是秒 
 -  authentication { 
 -  auth_type PASS # 鉴权,默认通过 
 -  auth_pass 123456   # 鉴权访问密码 
 -  } 
 -  virtual_ipaddress { 
 -  172.16.28.120  # 指定了虚拟ip 
 -  } 
 - } 
 - # Virtual Server Configuration - for www server 
 - # 后台真实主机的配置 
 - virtual_server 172.16.28.120 80 { 
 -  delay_loop 1   # 健康检查的时间间隔 
 -  lb_algo rr # 负载均衡策略,这里是轮询 
 -  lb_kind DR # 调度器类型,这里是DR 
 -  persistence_time 1 # 指定了持续将请求打到同一台真实主机的时间长度 
 -  protocol TCP   # 指定了访问后台真实主机的协议类型 
 -  # Real Server 1 configuration 
 -  # 指定了真实主机1的ip和端口 
 -  real_server 172.16.28.132 80 { 
 -  weight 1   # 指定了当前主机的权重 
 -  TCP_CHECK { 
 -  connection_timeout 10  # 指定了进行心跳检查的超时时间 
 -  nb_get_retry 3 # 指定了心跳超时之后的重复次数 
 -  delay_before_retry 3   # 指定了在尝试之前延迟多长时间 
 -  } 
 -  } 
 -  # Real Server 2 Configuration 
 -  real_server 172.16.28.133 80 { 
 -  weight 1   # 指定了当前主机的权重 
 -  TCP_CHECK { 
 -  connection_timeout 10  # 指定了进行心跳检查的超时时间 
 -  nb_get_retry 3 # 指定了心跳超时之后的重复次数 
 -  delay_before_retry 3   # 指定了在尝试之前延迟多长时间 
 -  } 
 -  } 
 - } 
 
  
上面是master节点上keepalived的配置,对于backup节点,其配置与master几乎是一致的,只是其state和priority参数不同。如下是backup节点的完整配置: 
- # Global Configuration 
 - global_defs { 
 -  lvs_id director2 # 指定lvs的id 
 - } 
 - # VRRP Configuration 
 - vrrp_instance LVS { 
 -  state BACKUP   # 指定当前节点为master节点 
 -  interface ens33    # 这里的ens33是网卡的名称,通过ifconfig或者ip addr可以查看 
 -  virtual_router_id 51   # 这里指定的是虚拟路由id,master节点和backup节点需要指定一样的 
 -  priority 150   # 指定了当前节点的优先级,数值越大优先级越高,master节点要高于backup节点 
 -  advert_int 1   # 指定发送VRRP通告的间隔,单位是秒 
 -  authentication { 
 -  auth_type PASS # 鉴权,默认通过 
 -  auth_pass 123456   # 鉴权访问密码 
 -  } 
 -  virtual_ipaddress { 
 -  172.16.28.120  # 指定了虚拟ip 
 -  } 
 - } 
 - # Virtual Server Configuration - for www server 
 - # 后台真实主机的配置 
 - virtual_server 172.16.28.120 80 { 
 -  delay_loop 1   # 健康检查的时间间隔 
 -  lb_algo rr # 负载均衡策略,这里是轮询 
 -  lb_kind DR # 调度器类型,这里是DR 
 -  persistence_time 1 # 指定了持续将请求打到同一台真实主机的时间长度 
 -  protocol TCP   # 指定了访问后台真实主机的协议类型 
 -  # Real Server 1 configuration 
 -  # 指定了真实主机1的ip和端口 
 -  real_server 172.16.28.132 80 { 
 -  weight 1   # 指定了当前主机的权重 
 -  TCP_CHECK { 
 -  connection_timeout 10  # 指定了进行心跳检查的超时时间 
 -  nb_get_retry 3 # 指定了心跳超时之后的重复次数 
 -  delay_before_retry 3   # 指定了在尝试之前延迟多长时间 
 -  } 
 -  } 
 -  # Real Server 2 Configuration 
 -  real_server 172.16.28.133 80 { 
 -  weight 1   # 指定了当前主机的权重 
 -  TCP_CHECK { 
 -  connection_timeout 10  # 指定了进行心跳检查的超时时间 
 -  nb_get_retry 3 # 指定了心跳超时之后的重复次数 
 -  delay_before_retry 3   # 指定了在尝试之前延迟多长时间 
 -  } 
 -  } 
 - } 
 
  
将master和backup配置成完全一样的原因是,在master宕机时,可以根据backup的配置进行服务的无缝切换。                         (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |