Shell

推荐列表 站点导航

当前位置:首页 > 脚本编程 > Shell >

haproxy+keepalived负载均衡之主备切换(centos)

来源:网络整理  作者:网友投稿  发布时间:2020-12-29 11:48
本文介绍haproxy+keepalived双机热备负载均衡,在centos5.4上调试通过。此文转自我的个人空间:http://hi.baidu.com/ewayfly。...

调试通过) 复制代码 代码如下: #!/usr/bin/python #coding: utf-8 from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEImage import MIMEImage from email.Header import Header import sys import smtplib #------------------------------- # file: mailnotify.py # desc: send notify email # #------------------------------- strFrom = '[email protected]' strTo = '[email protected]' smtp_server = 'smtp.sina.com' smtp_user = 'toplover' smtp_pass = 'xxx***xxx' if sys.argv[1] != master and sys.argv[1] != backup and sys.argv[1] != fault: sys.exit() else: notify_type = sys.argv[1] mail_title = [crt] Haproxy-notify-info mail_body_plain = notify_type + 'alive, 不明之处请参阅haproxy官方cofiguration.txt文件及keepalived官方文档,下载安装,please check it now' msgRoot = MIMEMultipart('related') msgRoot['Subject'] = Header(mail_title,'utf-8') msgRoot['From'] = strFrom msgRoot['To'] = strTo msgAlternative = MIMEMultipart('alternative') msgRoot.attach(msgAlternative) msgText = MIMEText(mail_body_plain, check it with 'haproxy check'. return 1 fi stop start } # check haproxy check() { /usr/local/haproxy/sbin/haproxy -c -q -V -f /usr/local/haproxy/conf/haproxy.cfg } # rsstatus rhstatus() { status haproxy } # condrestart condrestart() { [ -e /var/lock/subsys/haproxy ] restart || : } # See how we were called. case $1 in start) start ;; stop) stop ;; restart) restart ;; reload) restart ;; condrestart) condrestart ;; status) rhstatus ;; check) check ;; *) echo $Usage: haproxy {start|stop|restart|reload|condrestart|status|check} RETVAL esac exit $RETVAL 三、keepalived配置文件 Master的配置文件: 复制代码 代码如下: ! Configuration File for keepalived global_defs { router_id LVS_1 } vrrp_script chk_haproxy { script /etc/keepalived/check_haproxy.sh interval 2 weight 2 } vrrp_instance VI_1 { state MASTER priority 99 advert_int 1 virtual_router_id 50 garp_master_delay 1 interface eth0 authentication { auth_type PASS auth_pass Kxiaokk345Pix } track_interface { eth0 } virtual_ipaddress { 192.168.1.100 } track_script { chk_haproxy } notify_master /etc/keepalived/mailnotify.py master notify_backup /etc/keepalived/mailnotify.py backup notify_fault /etc/keepalived/mailnotify.py fault } Slave的配置文件 复制代码 代码如下: ! Configuration File for keepalived global_defs { router_id LVS_2 } vrrp_script chk_haproxy { script /etc/keepalived/check_haproxy.sh interval 5 weight 2 } vrrp_instance VI_1 { state BACKUP priority 96 advert_int 1 virtual_router_id 50 garp_master_delay 1 interface eth0 authentication { auth_type PASS auth_pass Kxiaokk345Pix } track_interface { eth0 } virtual_ipaddress { 192.168.1.100 } track_script { chk_haproxy } notify_master /etc/keepalived/mailnotify.py master notify_backup /etc/keepalived/mailnotify.py backup notify_fault /etc/keepalived/mailnotify.py fault } ###### --- haproxy存活状态检测脚本 复制代码 代码如下: #!/bin/bash # # desc: check haproxy service # A=`ip address show eth0 | grep 192.168.1.100 | wc -l` B=`ps -C haproxy --no-heading | wc -l` if [ $A -eq 1 ]; then if [ $B -eq 0 ]; then /usr/local/haproxy/haproxy.sh start sleep 3 fi fi ######----主备切换时邮件提醒程序(此程序源自litus, 2004 ipvsadm-1.24-3.src.rpm (for 1.1.8 or later) - December 20, 'utf-8') msgAlternative.attach(msgText) smtp = smtplib.SMTP() smtp.connect(smtp_server) smtp.login(smtp_user, 2004 ipvsadm-1.24-4.src.rpm (for 1.1.8 or later) - January 10, 配置 (1): cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/sbin/keepalived /usr/sbin/ service keepalived start 如果安装时的编译参数为: ./configure --prefix=/usr/local/keepalived 则操作步骤如下: cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/ service keepalived start 以下为详细的配置文件 二、haproxy (1)、haproxy配置文件 haproxy.cfg 复制代码 代码如下: global daemon chroot /usr/local/haproxy maxconn 256 user haproxy group haproxy log-send-hostname xiaokk.com log-tag my_xiaokk nbproc 1 pidfile /var/run/haproxy.pid log 127.0.0.1 local0 info defaults maxconn 256 mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms timeout check 2000 retries 3 option httpclose option httplog option dontlognull option forwardfor option redispatch option abortonclose frontend http-www bind 192.168.1.100:80 acl ha_policy hdr_reg(host) -i ^(|test-haproxy.com|demo.test-haproxy.com|) acl ha_baby hdr_dom(host) -i hellobaby.com use_backend ha_www if ha_policy use_backend ha_www if ha_baby log 127.0.0.1 local0 info listen admin_status bind 192.168.1.100:1080 mode http log 127.0.0.1 local0 info stats uri /admin?status stats refresh 30s stats realm Haproxy\ Admin\ Center stats auth admin:admin stats hide-version backend ha_www mode http balance source cookie SERVERID option httpchk HEAD /index.html server w1 192.168.1.235:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1 server w2 192.168.1.236:85 cookie 1 check inter 1500 rise 3 fall 3 weight 2 (2)、haproxy启却脚本 haproxy.sh 复制代码 代码如下: #!/bin/sh # # chkconfig: - 85 15 # description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly \ # suited for high availability environments. # # processname: haproxy # config: /usr/local/haproxy/conf/haproxy.cfg # pidfile: /var/run/haproyx.pid # # Source function library. if [ -f /etc/init.d/functions ]; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions else exit 0 fi # Source networking configuration. . /etc/sysconfig/network # Check that networking is up [ ${NETWORKING} = no ] exit 0 [ -f /usr/local/haproxy/conf/haproxy.cfg ] || exit 1 RETVAL=0 # start Haproxy start() { /usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg if [ $? -ne 0 ]; then echo Errors found in configuration file. return 1 fi echo -n Starting Haproxy: daemon /usr/local/haproxy/sbin/haproxy -D -f /usr/local/haproxy/conf/haproxy.cfg -p /var/run/haproxy.pid RETVAL=$? echo [ $RETVAL -eq 0 ] touch /var/lock/subsys/haproxy return $RETVAL } # stop Haproxy stop() { echo -n Shutting down Haproxy: killproc haproxy -USR1 RETVAL=$? echo [ $RETVAL -eq 0 ] rm -f /var/lock/subsys/haproxy [ $RETVAL -eq 0 ] rm -f /var/run/haproxy.pid return $RETVAL } # restart Haproxy restart() { /usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg if [ $? -ne 0 ]; then echo ERR found in configuration file, 2.6.18 适用于1.24的各个版本 ipvsadm-1.24-6.src.rpm (for kernel between 2.6.10 and 2.6.27.4) - December 10,有小改动,不同版本内核适用的ipvs版本不一样。

msgRoot.as_string()) smtp.quit() 到此完成了简单的haproxy+keepalived负载均衡主从热备功能, tar zxvf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure make make install 安装完毕, 'html',please check it now' mail_body_html = 'bfont color=red' + notify_type + 'alive, tar zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 make make install 第三步, 'plain', 环境描述: VIP: 192.168.1.100 Master: 192.168.1.238 Slave: 192.168.1.239 真实IP: RIP1: 192.168.1.235 RIP2: 192.168.1.236 以下为安装步骤 第一步:安装haproxy 下载 #tar zxvf haproxy-1.4.18.tar.gz #make TARGET=linux26 #make install 第二步:安装ipvs 根据ipvs官网介绍, 2005 安装之前。

'utf-8') msgAlternative.attach(msgText) msgText = MIMEText(mail_body_html, ,软连接系统内核目录 ln -s /usr/src/kernels/2.6.18-194.11.3.el5-i686/ /usr/src/linux 查看系统当前的内核版本: uname -r 2.6.18-164.el5 有时你找不到这个内核的路径, 2005 ipvsadm-1.24-5.src.rpm (for 1.2.0 or later) - October 27,安装keepalived 从上下载最新的keepalived-1.2.2.tar.gz, strTo,smtp_pass) smtp.sendmail(strFrom, 2003 ipvsadm-1.24.tar.gz - December 10,系统安装后并没有kernerls的目录 解决方法:yum install kernel-devel 接下来在进行连接 编译 就ok了! 我们使用最新的 ipvsadm-1.24.tar.gz,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://www.juheyunku.com/jiaob/shell/10662.shtml

相关文章
最新文章
Centos下PHP5升级为PHP7的方法 Centos下PHP5升级为PHP7的方法

时间:2021-01-03

在php当中常量和变量的区 在php当中常量和变量的区

时间:2020-12-29

PHP中经典的四大排序算法 PHP中经典的四大排序算法

时间:2020-12-29

dw怎么运行php文件? dw怎么运行php文件?

时间:2020-12-29

PHP PHP_EOL 换行符 PHP PHP_EOL 换行符

时间:2020-12-29

Python3爬虫进阶:MongoDB存储 Python3爬虫进阶:MongoDB存储

时间:2020-12-29

python如何运行一个python程 python如何运行一个python程

时间:2020-12-29

用PHP写一个计算器(附完 用PHP写一个计算器(附完

时间:2020-12-29

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

haproxy+keepalived负载均衡之主备切换(centos)

2020-12-29 编辑:网友投稿

调试通过) 复制代码 代码如下: #!/usr/bin/python #coding: utf-8 from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEImage import MIMEImage from email.Header import Header import sys import smtplib #------------------------------- # file: mailnotify.py # desc: send notify email # #------------------------------- strFrom = '[email protected]' strTo = '[email protected]' smtp_server = 'smtp.sina.com' smtp_user = 'toplover' smtp_pass = 'xxx***xxx' if sys.argv[1] != master and sys.argv[1] != backup and sys.argv[1] != fault: sys.exit() else: notify_type = sys.argv[1] mail_title = [crt] Haproxy-notify-info mail_body_plain = notify_type + 'alive, 不明之处请参阅haproxy官方cofiguration.txt文件及keepalived官方文档,下载安装,please check it now' msgRoot = MIMEMultipart('related') msgRoot['Subject'] = Header(mail_title,'utf-8') msgRoot['From'] = strFrom msgRoot['To'] = strTo msgAlternative = MIMEMultipart('alternative') msgRoot.attach(msgAlternative) msgText = MIMEText(mail_body_plain, check it with 'haproxy check'. return 1 fi stop start } # check haproxy check() { /usr/local/haproxy/sbin/haproxy -c -q -V -f /usr/local/haproxy/conf/haproxy.cfg } # rsstatus rhstatus() { status haproxy } # condrestart condrestart() { [ -e /var/lock/subsys/haproxy ] restart || : } # See how we were called. case $1 in start) start ;; stop) stop ;; restart) restart ;; reload) restart ;; condrestart) condrestart ;; status) rhstatus ;; check) check ;; *) echo $Usage: haproxy {start|stop|restart|reload|condrestart|status|check} RETVAL esac exit $RETVAL 三、keepalived配置文件 Master的配置文件: 复制代码 代码如下: ! Configuration File for keepalived global_defs { router_id LVS_1 } vrrp_script chk_haproxy { script /etc/keepalived/check_haproxy.sh interval 2 weight 2 } vrrp_instance VI_1 { state MASTER priority 99 advert_int 1 virtual_router_id 50 garp_master_delay 1 interface eth0 authentication { auth_type PASS auth_pass Kxiaokk345Pix } track_interface { eth0 } virtual_ipaddress { 192.168.1.100 } track_script { chk_haproxy } notify_master /etc/keepalived/mailnotify.py master notify_backup /etc/keepalived/mailnotify.py backup notify_fault /etc/keepalived/mailnotify.py fault } Slave的配置文件 复制代码 代码如下: ! Configuration File for keepalived global_defs { router_id LVS_2 } vrrp_script chk_haproxy { script /etc/keepalived/check_haproxy.sh interval 5 weight 2 } vrrp_instance VI_1 { state BACKUP priority 96 advert_int 1 virtual_router_id 50 garp_master_delay 1 interface eth0 authentication { auth_type PASS auth_pass Kxiaokk345Pix } track_interface { eth0 } virtual_ipaddress { 192.168.1.100 } track_script { chk_haproxy } notify_master /etc/keepalived/mailnotify.py master notify_backup /etc/keepalived/mailnotify.py backup notify_fault /etc/keepalived/mailnotify.py fault } ###### --- haproxy存活状态检测脚本 复制代码 代码如下: #!/bin/bash # # desc: check haproxy service # A=`ip address show eth0 | grep 192.168.1.100 | wc -l` B=`ps -C haproxy --no-heading | wc -l` if [ $A -eq 1 ]; then if [ $B -eq 0 ]; then /usr/local/haproxy/haproxy.sh start sleep 3 fi fi ######----主备切换时邮件提醒程序(此程序源自litus, 2004 ipvsadm-1.24-3.src.rpm (for 1.1.8 or later) - December 20, 'utf-8') msgAlternative.attach(msgText) smtp = smtplib.SMTP() smtp.connect(smtp_server) smtp.login(smtp_user, 2004 ipvsadm-1.24-4.src.rpm (for 1.1.8 or later) - January 10, 配置 (1): cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/sbin/keepalived /usr/sbin/ service keepalived start 如果安装时的编译参数为: ./configure --prefix=/usr/local/keepalived 则操作步骤如下: cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ mkdir /etc/keepalived cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/ service keepalived start 以下为详细的配置文件 二、haproxy (1)、haproxy配置文件 haproxy.cfg 复制代码 代码如下: global daemon chroot /usr/local/haproxy maxconn 256 user haproxy group haproxy log-send-hostname xiaokk.com log-tag my_xiaokk nbproc 1 pidfile /var/run/haproxy.pid log 127.0.0.1 local0 info defaults maxconn 256 mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms timeout check 2000 retries 3 option httpclose option httplog option dontlognull option forwardfor option redispatch option abortonclose frontend http-www bind 192.168.1.100:80 acl ha_policy hdr_reg(host) -i ^(|test-haproxy.com|demo.test-haproxy.com|) acl ha_baby hdr_dom(host) -i hellobaby.com use_backend ha_www if ha_policy use_backend ha_www if ha_baby log 127.0.0.1 local0 info listen admin_status bind 192.168.1.100:1080 mode http log 127.0.0.1 local0 info stats uri /admin?status stats refresh 30s stats realm Haproxy\ Admin\ Center stats auth admin:admin stats hide-version backend ha_www mode http balance source cookie SERVERID option httpchk HEAD /index.html server w1 192.168.1.235:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1 server w2 192.168.1.236:85 cookie 1 check inter 1500 rise 3 fall 3 weight 2 (2)、haproxy启却脚本 haproxy.sh 复制代码 代码如下: #!/bin/sh # # chkconfig: - 85 15 # description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly \ # suited for high availability environments. # # processname: haproxy # config: /usr/local/haproxy/conf/haproxy.cfg # pidfile: /var/run/haproyx.pid # # Source function library. if [ -f /etc/init.d/functions ]; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions else exit 0 fi # Source networking configuration. . /etc/sysconfig/network # Check that networking is up [ ${NETWORKING} = no ] exit 0 [ -f /usr/local/haproxy/conf/haproxy.cfg ] || exit 1 RETVAL=0 # start Haproxy start() { /usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg if [ $? -ne 0 ]; then echo Errors found in configuration file. return 1 fi echo -n Starting Haproxy: daemon /usr/local/haproxy/sbin/haproxy -D -f /usr/local/haproxy/conf/haproxy.cfg -p /var/run/haproxy.pid RETVAL=$? echo [ $RETVAL -eq 0 ] touch /var/lock/subsys/haproxy return $RETVAL } # stop Haproxy stop() { echo -n Shutting down Haproxy: killproc haproxy -USR1 RETVAL=$? echo [ $RETVAL -eq 0 ] rm -f /var/lock/subsys/haproxy [ $RETVAL -eq 0 ] rm -f /var/run/haproxy.pid return $RETVAL } # restart Haproxy restart() { /usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/haproxy.cfg if [ $? -ne 0 ]; then echo ERR found in configuration file, 2.6.18 适用于1.24的各个版本 ipvsadm-1.24-6.src.rpm (for kernel between 2.6.10 and 2.6.27.4) - December 10,有小改动,不同版本内核适用的ipvs版本不一样。

msgRoot.as_string()) smtp.quit() 到此完成了简单的haproxy+keepalived负载均衡主从热备功能, tar zxvf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure make make install 安装完毕, 'html',please check it now' mail_body_html = 'bfont color=red' + notify_type + 'alive, tar zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 make make install 第三步, 'plain', 环境描述: VIP: 192.168.1.100 Master: 192.168.1.238 Slave: 192.168.1.239 真实IP: RIP1: 192.168.1.235 RIP2: 192.168.1.236 以下为安装步骤 第一步:安装haproxy 下载 #tar zxvf haproxy-1.4.18.tar.gz #make TARGET=linux26 #make install 第二步:安装ipvs 根据ipvs官网介绍, 2005 安装之前。

'utf-8') msgAlternative.attach(msgText) msgText = MIMEText(mail_body_html, ,软连接系统内核目录 ln -s /usr/src/kernels/2.6.18-194.11.3.el5-i686/ /usr/src/linux 查看系统当前的内核版本: uname -r 2.6.18-164.el5 有时你找不到这个内核的路径, 2005 ipvsadm-1.24-5.src.rpm (for 1.2.0 or later) - October 27,安装keepalived 从上下载最新的keepalived-1.2.2.tar.gz, strTo,smtp_pass) smtp.sendmail(strFrom, 2003 ipvsadm-1.24.tar.gz - December 10,系统安装后并没有kernerls的目录 解决方法:yum install kernel-devel 接下来在进行连接 编译 就ok了! 我们使用最新的 ipvsadm-1.24.tar.gz,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://www.juheyunku.com/jiaob/shell/10662.shtml

相关文章

风云图片

推荐阅读

返回Shell频道首页