| 关键词: nbsp Keepalived Nginx interface 192.168 script 监控 vrrp email virtual |
对于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepalived实现Nginx 负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去。以下内容为第三次更新了,下面将其安装步骤详细说明下: 一、安装nginx,上一篇已经有安装步骤,请看上一篇文章 二、安装keepalived keepalived 下载地址:http://www.keepalived.org/software/wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gztar zxvf keepalived-1.2.2.tar.gzcd keepalived-12.2./configure --prefix=/usr/local/keepalivedmake make installcp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir /etc/keepalivedcd /etc/keepalived/ 主配置文件 vim keepalived.conf global_defs { ####全局定义 notification_email { #####指定keepalived在发生事件时(比如切换),需要发送的email对象,可以多个,每行一个 [email protected] } notification_email_from [email protected] smtp_server 127.0.0.1 #####指定发送email的smtp服务器 smtp_connect_timeout 30 router_id LVS_DEVEL #######运行keepalived的机器的一个标识 } vrrp_sync_group VG1 { group { VI_1 VI_2 } } vrrp_script chk_nginx { script "/etc/chk_nginx.sh" ###监控脚本 interval 2 ###监控时间 #weight -2 } vrrp_instance VI_1 { state MASTER interface eth0 # track_interface { # eth0 # eth1 # } virtual_router_id 51 #VRID标记 master和backup必须一致 mcast_src_ip 192.168.2.113 #发送多播包的地址,如果不设置默认使用绑定的网卡的primary ip priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx ### 就是上面vrrp_script后面的实例名称 执行监控的服务 } virtual_ipaddress { 192.168.2.116 } } vrrp_instance VI_2 { state BACKUP interface eth0 tual_router_id 52 mcast_src_ip 192.168.100.113 priority 149 advert_int 1 authentication { auth_type PASS auth_pass 1111 } # track_interface { # eth0 # eth1 # } virtual_ipaddress { 192.168.100.117 } } 另一主的配置文件 global_defs { ####全局定义 notification_email { #####指定keepalived在发生事件时(比如切换),需要发送的email对象,可以多个,每行一个 123.com } notification_email_from [email protected] smtp_server 127.0.0.1 #####指定发送email的smtp服务器 smtp_connect_timeout 30 router_id LVS_DEVEL #######运行keepalived的机器的一个标识 } vrrp_sync_group VG1 { group { VI_1 VI_2 } } vrrp_script chk_nginx { script "/etc/chk_nginx.sh" ###监控脚本 interval 2 ###监控时间 #weight -2 } vrrp_instance VI_1 { state BACKUP interface eth0 # track_interface { # eth0 # eth1 # } virtual_router_id 51 #VRID标记 master和backup必须一致 mcast_src_ip 192.168.2.112 #发送多播包的地址,如果不设置默认使用绑定的网卡的primary ip priority 149 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.116 } } vrrp_instance VI_2 { state MASTER interface eth0 tual_router_id 52 mcast_src_ip 192.168.100.112 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx ### 就是上面vrrp_script后面的实例名称 执行监控的服务 } # track_interface { # eth0 # eth1 } virtual_ipaddress { 192.168.100.117 } } ###以上配置在写的时候一定要注意有空格的地方一定要加上(很多小的细节一定要注意) 下面是 自己定义监控nginx的脚本 chk_nginx.sh vim chk_nginx.sh #!/bin/bash url="http://192.168.100.1/index.html" status=$(/usr/bin/curl -s --head "$url"|awk '/HTTP/ {print $2}') if[ "$status" != "200" ]; then /etc/init.d/keepalived stop fi |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|