http://www.bitbi.biz/centos-6-2-keepalivedhaproxy-%E5%AE%89%E8%A3%85%E6%B5%8B%E8%AF%95-2912/
Haproxy 不用多说了,她可以做4/7层代理,本文是利用Haproxy的7层代理与Keepalived实现一个负载均衡器
1.系统
OS:centos6.2(64bit)
MASTER:192.168.1.67
BACKUP:192.168.1.68
VIP:192.168.1.100
Service Port:8080
|
2.系统日志配置
vi /etc/rsyslog.conf
#加入以下四行
$ModLoad imudp.so
$UDPServerRun 514
$UDPServerAddress 127.0.0.1
local2.* /var/log/haproxy.log
|
3.关闭SELINUX
sed
-i
's:SELINUX=enforcing:SELINUX=disabled:g'
/etc/selinux/config
|
4.添加VRRP通讯支持到iptables里
iptables -A INPUT -d 224.0.0.18 -j ACCEPT
|
5.安装Haproxy
#先安装epel包
yum
install
haproxy
#上面安装好了这步就可跳过,haproxy编译安装,
#mkdir -p /home/install/keepalived1
#cd /home/install/keepalive1
#tar -zxvf haproxy-1.4.18.tar.gz
#cd haproxy-1.4.18
#make install
#mkdir -p /usr/local/haproxy/etc
#mkdir -p /usr/local/haproxy/sbin
#cp examples/haproxy.cfg /usr/local/haproxy/etc
#ln -s /usr/local/sbin/haproxy /usr/local/haproxy/sbin/haproxy
#查看haproxy配置
cat
/etc/haproxy/haproxy
.cfg
#全局配置
global
log 127.0.0.1 local2
chroot
/var/lib/haproxy
pidfile
/var/run/haproxy
.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
#stats socket /var/lib/haproxy/stats
########默认配置############
defaults
#默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
mode http
log global
#option http-server-close
#option forwardfor except 127.0.0.0/8
option httplog
#两次连接失败就认为是服务器不可用,也可以通过后面设置
retries 3
option dontlognull
#当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option redispatch
#当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option abortonclose
#默认的最大连接数
maxconn 2000
timeout http-keep-alive 10s
timeout queue 1m
#连接超时
timeout connect 5000ms
#客户端超时
timeout client 30000ms
#服务器超时
timeout server 30000ms
#心跳检测超时
timeout check 5s
########test1配置#################
listen test1 192.168.1.100:8080
mode http
option httplog
balance roundrobin
server s1 192.168.1.59:8080 maxconn 2000 check inter 10s fall 1 rise 2
server s2 192.168.1.60:8080 maxconn 2000 check inter 10s fall 1 rise 2
########统计页面配置########
listen admin_stats
stats
enable
#监听端口
bind 192.168.1.67:8000
#http的7层模式
mode http
#采用http日志格式
option httplog
log global
maxconn 10
#统计页面自动刷新时间
stats refresh 30s
#统计页面url
stats uri
/stats
#统计页面密码框上提示文本
stats realm DW-
test
-Haproxy
#统计页面用户名和密码设置,还是要修改一下的
stats auth admin:admin
stats admin
if
TRUE
#隐藏统计页面上HAProxy的版本信息
stats hide-version
#haproxy配置结束
#
#
#
#运行haproxy
/etc/init
.d
/haproxy
start
#测试一下
|
6.安装Keepalived(当然你也可以#yum install keepalived,但要先安装epel的包)
mkdir
-p
/home/install/keepalived1
cd
/home/install/keepalived1
wget http:
//www
.keepalived.org
/software/keepalived-1
.2.2.
tar
.gz
tar
zxvf keepalived-1.2.2.
tar
.gz
cd
keepalived-1.2.2
.
/configure
make
&&
make
install
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/
cp
/usr/local/sbin/keepalived
/usr/sbin/
#keepalived配置
cat
/etc/keepalived/keepalived
.conf
global_defs {
notification_email {
xxx@gmail.com
}
notification_email_from xxx@gmail.com
smtp_connect_timeout 3
smtp_server 127.0.0.1
router_id HA_DEVEL_1
}
vrrp_script chk_haproxy {
#监测haproxy
script
"killall -0 haproxy"
#2s检查一次
interval 2
weight 2
}
vrrp_instance VI_1 {
interface eth0
#从为BACKUP
state MASTER
#从为100
priority 101
#路由ID,可通过#tcpdump vrrp查看。
virtual_router_id 50
#主从切换时间,单位为秒。
garp_master_delay 1
authentication {
auth_type PASS
#主从要一样,记得改一下哦
auth_pass XXXXXXXXXX
}
virtual_ipaddress {
192.168.1.100
#VIP
}
#将Linux中你想监控的网络接口卡监控起来,当其中的一块出现故障是keepalived都将视为路由器出现故障
track_interface {
eth0
eth1
}
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"
}
#keepalived配置结束
#
#
#启动相关服务
/etc/init
.d
/haproxy
start
/etc/init
.d
/keepalived
start
#查看有没有节点记录
tcpdump vrrp
|
7.haproxy界面 (现在的haproxy可以在页面上手动启用或禁用节点)
访问http://192.168.1.67:8000/stats
注:关于keepalive里的状态通知,这里借用一下天斯 的python脚本
Mailnotify.py
#!/usr/local/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
#---------------------------------------------------------------
# Name: Mailnotify.py
# Purpose: Mail notify to SA
# Author: Liutiansi
# Email: liutiansi@gamil.com
# Created: 2011/03/09
# Copyright: (c) 2011
#--------------------------------------------------------------
strFrom
=
'admin@domain.com'
strTo
=
'liutiansi@gmail.com'
smtp_server
=
'smtp.domain.com'
smtp_pass
=
'123456'
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
=
'[紧急]负载均衡器邮件通知'
mail_body_plain
=
notify_type
+
'被激活,请做好应急处理。'
mail_body_html
=
'<b><font color=red>'
+
notify_type
+
'被激活,请做好应急处理。</font></b>'
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,
'plain'
,
'utf-8'
)
msgAlternative.attach(msgText)
msgText
=
MIMEText(mail_body_html,
'html'
,
'utf-8'
)
msgAlternative.attach(msgText)
smtp
=
smtplib.SMTP()
smtp.connect(smtp_server)
smtp.login(smtp_user,smtp_pass)
smtp.sendmail(strFrom, strTo, msgRoot.as_string())
smtp.quit()
|
然后放在/etc/keepalived 目录下(记得修改脚本里的邮箱地址),chmod +x /etc/keepalived/Mailnotify.py
把keepalived.conf的 “#状态通知” 以下的注释去掉,重启keepalived服务就可以了,嘿嘿
发表评论
-
在linux网站运维方向老男孩最近几年常用的免费的开源软件
2013-02-18 23:35 1597http://blog.chinaunix.net/uid- ... -
rsync服务部署
2013-02-18 22:40 871http://oplinux.com/app/rsync/r ... -
centos6.0 配置SVN
2013-02-04 14:52 997http://blog.csdn.net/tonysz12 ... -
Centos搭建SVN服务器三步曲
2013-02-04 12:09 909搭建SVN服务,有效的管理代码,以下三步可以快速搞定。1、安 ... -
linux(centos)如何使用svn进行多个版本库的配置
2013-02-04 12:08 3554如果当前有svnserve进程在运行,指令 ... -
MySQL CMake参数说明手册
2012-12-24 10:52 773http://www.sunchis.com/html/db/ ... -
Nginx下搭建flv视频服务器且支持视频拖动进度条播放
2012-12-19 18:10 1162目前,由于Flash 的流行,网络上绝大多数的微视频网站 ... -
如何查询centos查看系统内核版本,系统版本,32位还是64位
2012-12-15 11:13 1220http://hi.baidu.com/tjbaso/item ... -
linux下磁盘I/O查看
2012-12-07 13:11 800http://zlbzhu.blog.51cto.co ... -
Centos5.5最小化安装后的优化
2012-11-20 23:16 1183购买了服务器(现在主流 ... -
CentOS 6.2编译安装Nginx1.2.0+MySQL5.5.25+PHP5.3.13+博客系统WordPress3.3.2
2012-11-11 23:37 1029说明: 操作系统:CentOS 6.2 32 ... -
CentOS minimal 版安装图形界面的步骤分享,中文语言包.
2012-11-11 22:33 7301、连接网络: CentOS minimal.iso安装好 ... -
CentOS 6.3编译安装Nginx1.2.2+MySQL5.5.25a+PHP5.4.5
2012-11-04 19:56 896说明: 操作系统:CentOS 6.3 32位 系 ... -
[HTML5]配置Ngnix服务器支持manifest 离线存储
2012-10-08 14:09 1415[HTML5]配 ... -
RSync实现文件备份同步
2012-09-21 12:20 764http://www.cnblogs.com/itech/ar ... -
CentOS 5 + rsync 同步2台服务器的文件
2012-09-21 12:11 865当需要把服务器上的文件复制到另外的机器上,可用rsync来同步 ... -
Linux下利用rsync实现多服务器文件同步
2012-09-21 12:07 930注意事项: 1、主服务器上有配置文件,从服务器上没有配置文件 ... -
Rsync命令参数详解
2012-10-08 14:06 723在对rsync服务器配置结束以后,下一步就需要在客户端发出rs ... -
rsync
2012-09-20 18:40 1103rsync两种模式:远程shell ... -
Linux下SVN服务器搭建(CentOS+Subversion)
2012-09-20 09:52 740本文主要介绍SVN独立服 ...
相关推荐
32位DVD1http://mirrors.163.com/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso 32位DVD2http://mirrors.163.com/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD2.iso 64位DVD1...
本文档使用 CentOS 7.3 作为操作系统,安装 Keepalived 和 Haproxy 的版本分别为 1.3.5 和 1.6.13。 二、修改系统参数 1. 修改文件连接数:为了提高系统的性能,我们需要修改文件连接数的限制。使用以下命令临时...
* 可以从 http://centos.ustc.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1to2.torrent 下载 32 位 CentOS 6.2 镜像文件。 * 可以从 ...
本文将详细介绍如何配置 Keepalived 和 HAProxy 来实现高可用负载均衡,并解决 Keepalived 在 CentOS 5.7 上安装时可能遇到的问题。 #### 二、系统环境 - **Keepalived版本**: 1.2.2 - **操作系统**: CentOS 5.7 - ...
Haproxy下载地址:http://pkgs.fedoraproject.org/repo/pkgs/haproxy/ 关闭SElinux、配置防火墙 1、vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq...
1. 安装Keepalived:`yum install -y keepalived` 2. 配置Keepalived:在`/etc/keepalived/keepalived.conf`中定义主、备节点的角色,设置监控的检查脚本和VIP。 3. 启动Keepalived:`systemctl start keepalived` 4...
32位系统的下载链接为 http://isoredirect.centos.org/centos/6/isos/i386/,64位系统的下载链接为 http://isoredirect.centos.org/centos/6/isos/x86_64/。您将获得两个ISO文件:`CentOS-6.2-i386-bin-DVD1` 和 `...
- **32位系统**的镜像文件可从**http://centos.ustc.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1to2.torrent**下载。 - **64位系统**的镜像文件则位于**...
在CentOS 6.2系统下配置Django与Python环境是一项关键任务,尤其对于那些希望在稳定的企业级Linux操作系统上部署动态网站或Web应用的开发者而言。以下将详细阐述整个配置流程,涵盖从安装必要的软件包到最终启动...
在构建高可用性、负载均衡的数据库系统时,`keepalived`、`haproxy` 和 `mycat` 是三个关键组件。本配置文件集合主要用于实现基于 CentOS 7 的多节点环境中,MySQL 双主读写分离以及故障自动切换的解决方案。下面将...
本文主要介绍如何通过添加第三方YUM源来扩展软件包的安装范围,以解决在CentOS 6.2中无法通过默认YUM源安装某些软件(如iftop)的问题。 首先,让我们了解YUM(Yellowdog Updater, Modified)是Linux系统中的一个包...
在CentOS 6.2 64位操作系统中安装Oracle 11g涉及多个关键步骤,包括系统和配置要求、软件环境准备、用户环境设置以及后续的安装过程。以下是详细的知识点说明: 1. **系统及配置要求**: - 操作系统版本:CentOS ...
centos6.2安装手册,用于宇视相关软件部署、开局所用。
- 下载地址:[http://ftp.sjtu.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso](http://ftp.sjtu.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso) 3. **U盘**:容量至少大于4GB。 4. **...
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 ``` 3. **修改 Updates 配置:** 同样地,将 `updates` 部分的 `...
制作U盘安装CentOS 6.2是一个常见的系统部署任务,尤其对于IT专业人士而言,了解这一过程至关重要。这里我们将深入探讨如何使用给定的文件来完成这个任务。 首先,我们需要两个关键工具,从提供的文件列表中可以...
在 CentOS 6.2 操作系统上,NTP 服务器是系统自带的,不需要安装任何软件包。只需要配置 NTP 服务器的配置文件 `/etc/ntp.conf`,并添加 restrict 语句来限制访问权限。 ``` #vim /etc/ntp.conf restrict 220.130....
- 下载地址:[http://ftp.sjtu.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso](http://ftp.sjtu.edu.cn/centos/6.2/isos/i386/CentOS-6.2-i386-bin-DVD1.iso) 3. **U盘**:容量需大于4GB。 - 因为...
haproxy 软件是 CentOS 7 操作系统中的一个标准组件,可以通过 rpm 命令来安装和管理。使用以下命令可以检查是否已经安装了 haproxy 软件: ``` [root@zhangjie /]# rpm -qa | grep haproxy ``` 该命令使用 rpm ...