Haproxy+keepalived实现sphinx高可用负载均衡

Haproxy+keepalived实现sphinx高可用负载均衡 环境如下: 【node3】 haproxy:192.168.1.189 【node4】 haproxy:192.168.1.103 vip:192.168.1.222/192.168.1.223 # apt-get install ipvsadm # apt-get install linux-headers-$(uname -r) # ln -s /usr/src/linux-headers-2.6.32-33 /usr/src/linux # wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz # tar zxvf keepalived-1.2.2.tar.gz -C ../software/ # ./configure --prefix=/usr/local/keepalived-1.2.2 configure: error:!!! OpenSSL is not properly installed on your system. !!!!!! Can not include OpenSSL headers files.解决办法: # apt-get install libssl-dev configure: error: Popt libraries is required 解决办法: # apt-get install libpopt-dev configure: WARNING: keepalived will be built without libnl support. 解决办法: # apt-get install libnl-dev /usr/include/stdint.h:41: error: conflicting types for ‘int64_t’ /usr/src/linux/include/linux/types.h:125: error: previous declaration of ‘int64_t’ was here /usr/include/stdint.h:56: error: conflicting types for ‘uint64_t’ 解决办法: # vim ./keepalived/libipvs-2.6/ip_vs.h 将#include <linux/types.h>移动到#include <sys/types.h>后面去。 # ./configure --prefix=/usr/local/keepalived-1.2.2 Keepalived configuration ------------------------ Keepalived version       : 1.2.2 Compiler                 : gcc Compiler flags           : -g -O2 Extra Lib                : -lpopt -lssl -lcrypto  -lnl Use IPVS Framework       : Yes IPVS sync daemon support : Yes IPVS use libnl           : Yes Use VRRP Framework       : Yes Use Debug flags          : No # make # make install # vim /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 # sysctl -p 【node3】 global_defs { router_id LVS_DEVEL } vrrp_script chk_haproxy { script "/usr/local/scripts/chk_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 76 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_haproxy } virtual_ipaddress { 192.168.1.222 } } vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 77 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_haproxy } virtual_ipaddress { 192.168.1.223 } } 【node4】 global_defs { router_id LVS_DEVEL } vrrp_script chk_haproxy { script "/usr/local/scripts/chk_haproxy.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 76 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_haproxy } virtual_ipaddress { 192.168.1.222 } } vrrp_instance VI_2 { state MASTER interface eth0 virtual_router_id 77 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 123456 } track_script { chk_haproxy } virtual_ipaddress { 192.168.1.223 } } # vim chk_haproxy.sh #!/bin/bash STATUS=`netstat -nptl | grep haproxy | grep 3312 | wc -l` if [ "$STATUS" -eq "0" ]; then /usr/local/haproxy-1.4.18/sbin/haproxy -f /usr/local/haproxy-1.4.18/haproxy.conf STATUS2=`netstat -nptl | grep haproxy | grep 3312 | wc -l` if [ "$STATUS2" -eq "0"  ]; then kill -9 $(ps -ef | grep keepalived | grep -v grep | awk '{print $2}') fi fi

你可能感兴趣的:(haproxy,keepalived,ubuntu,NoSQL,libnl-dev,libpopt-dev,高可用负载均衡)