HAProxy+Keepalived实现web服务器负载均衡_第1页
HAProxy+Keepalived实现web服务器负载均衡_第2页
HAProxy+Keepalived实现web服务器负载均衡_第3页
HAProxy+Keepalived实现web服务器负载均衡_第4页
HAProxy+Keepalived实现web服务器负载均衡_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HAProxy+keepalived实现web服务器负载均衡说明:操作系统:CentOS 5.X 64位Web服务器:27、28站点:和部署在两台Web服务器上实现目的:增加两台服务器(主主模式),通过HAProxy+Keepalived实现Web服务器负载均衡架构规划:HAProxy服务器:29、30虚拟服务器(VIP):53、54部署完成之后:1、VIP:53指向29;VIP:

2、54指向30;2、当29宕机时,VIP:53漂移到30上;3、当30宕机时,VIP:54漂移到29上;这样的主主模式好处是,两台服务器在提供服务的同时,又互为对方的备份服务器。具体操作:第一部分:在两台HAProxy服务器上分别操作一、关闭SElinux、配置防火墙1、vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉

3、SELINUX=disabled #增加:wq!  #保存退出setenforce 0 #使配置立即生效2、vi /etc/sysconfig/iptables  #编辑-A RH-Firewall-1-INPUT -d 8 -j ACCEPT  #允许组播地址通信-A RH-Firewall-1-INPUT -p    vrrp    -j ACCEPT  #允许VRRP(虚拟路由器冗余协)通信-A RH-Firew

4、all-1-INPUT -m state -state NEW -m tcp -p tcp -dport 80 -j ACCEPT  #允许80端口通过防火墙:wq! #保存退出/etc/init.d/iptables restart #重启防火墙使配置生效二、安装HAProxy1、创建HAProxy运行账户和组groupadd haproxy #添加haproxy组useradd -g haproxy haproxy -s /bin/false #创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy用户

5、直接登录系统2、安装编译工具yum install  gcc gcc-c+ make openssl-devel kernel-devel3、安装HAProxyHAProxy下载地址:http:/haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz上传haproxy-1.4.24.tar.gz到/usr/local/src目录中cd /usr/local/src #进入软件包存放目录tar zxvf haproxy-1.4.24.tar.gz #解压cd  haproxy-1.4.24 &#

6、160;#进入安装目录make  TARGET=linux26 CPU=x86_64  PREFIX=/usr/local/haprpxy  #编译make install PREFIX=/usr/local/haproxy  #安装参数说明:TARGET=linux26   #使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26CPU=x86_64   #使用uname -r查看系统信息,如x86_64 x86_64 x86_64 G

7、NU/Linux,此时该参数就为x86_64PREFIX=/usr/local/haprpxy   #/usr/local/haprpxy为haprpxy安装路径4、设置HAProxymkdir -p  /usr/local/haproxy/conf  #创建配置文件目录mkdir -p /etc/haproxy  #创建配置文件目录cp /usr/local/src/haproxy-1.4.24/examples/haproxy.cfg  /usr/local/haproxy/conf/haproxy.

8、cfg  #拷贝配置模板文件ln -s  /usr/local/haproxy/conf/haproxy.cfg   /etc/haproxy/haproxy.cfg  #添加配置文件软连接cp -r  /usr/local/src/haproxy-1.4.24/examples/errorfiles  /usr/local/haproxy/errorfiles  #拷贝错误页面ln -s  /usr/local/haproxy/errorfiles  /etc/h

9、aproxy/errorfiles  #添加软连接mkdir -p  /usr/local/haproxy/log  #创建日志文件目录touch  /usr/local/haproxy/log/haproxy.log  #创建日志文件ln -s  /usr/local/haproxy/log/haproxy.log  /var/log/haproxy.log  #添加软连接cp /usr/local/src/haproxy-1.4.24/examples/haproxy.i

10、nit  /etc/rc.d/init.d/haproxy  #拷贝开机启动文件chmod +x  /etc/rc.d/init.d/haproxy  #添加脚本执行权限chkconfig haproxy on  #设置开机启动ln -s  /usr/local/haproxy/sbin/haproxy  /usr/sbin  #添加软连接5、配置haproxy.cfg参数cp  /usr/local/haproxy/conf/haproxy.cfg &#

11、160; /usr/local/haproxy/conf/haproxy.cfg-bak  #备份vi  /usr/local/haproxy/conf/haproxy.cfg  #编辑,修改# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog    local0 #在本机记录日志log    local1 notice#log loghost    local0

12、 infomaxconn 65535   #每个进程可用的最大连接数chroot /usr/local/haproxy  #haproxy安装目录uid 500  #运行haproxy的用户uid(cat /etc/passwd查看)gid 500  #运行haproxy的组uid(cat /etc/group查看)daemon   #以后台守护进程运行pidfile /usr/local/haproxy/haproxy.pid  #将所有进程写入pid文

13、件#debug   #调试模式#quiet   #安装模式defaults#log     globallog     local3  #日志文件设置mode    http  #运行模式tcp、http、healthoption  httplogoption  httpclose      

14、0;#每次请求完毕后主动关闭http通道option  dontlognull     #不记录健康检查的日志信息option  redispatch  #如果后端有服务器宕机,强制切换到正常服务器option  abortonclose  #丢弃由于客户端等待时间过长而关闭连接但仍在haproxy等待队列中的请求option  forwardfor  #获取客户端真实访问IPoption  originalto  

15、#记录客户端访问的目的IPmaxconn  65535  #每个进程可用的最大连接数balance source  #同一IP地址的所有请求都发送到同一服务器retries 3   #三次连接失败,则判断服务不可用contimeout      5000  #连接超时clitimeout      50000 #客户端超时srvtimeout    

16、;  50000 #服务器超时timeout check 5s #检测超时stats refresh 30s #统计页面自动刷新时间stats uri  /haproxy-status  #统计页面URL路径stats realm haproxy-status  #统计页面输入密码框提示信息stats auth admin:123456     #统计页面用户名和密码stats hide-version    

17、60;     #隐藏统计页面上HAProxy版本信息frontend    web  #自定义描述信息bind :80  #监听80端口acl   hdr(host) -i   #规则设置,-i后面是要访问的域名,如果访问这个域名,就负载均衡到作用域use_backend if    #acl和if后面的名称必须相同这里为acl   hdr(host) -i   #规则设置,-i后面是要访问的域

18、名,如果访问这个域名,就负载均衡到作用域use_backend if backend     mode httpbalance   source#option  httpchk /index.php  #检测服务器此文件是否存在,如果没有,则认为服务器连接异常,此参数可以不设置server     27  27:80   check  inter  2000 

19、 rise 3  fall  3  weight 100   #inter  2000 心跳检测时间;rise 3 三次连接成功,表示服务器正常;fall  3 三次连接失败,表示服务器异常; weight 100 权重设置server     28  28:80   check  inter  2000  rise 3  fall  3 

20、 weight 100backend     mode httpbalance   source  #设置负载均衡模式,source保存session值,roundrobin轮询模式#option  httpchk /index.php  #检测服务器此文件是否存在,如果没有,则认为服务器连接异常,此参数可以不设置server     27  27:80   check

21、  inter  2000  rise 3  fall  3  weight 100server     28  28:80   check  inter  2000  rise 3  fall  3  weight 100#errorloc  503  errorfile 403 /etc/haproxy/errorfiles/403.h

22、ttperrorfile 500 /etc/haproxy/errorfiles/500.httperrorfile 502 /etc/haproxy/errorfiles/502.httperrorfile 503 /etc/haproxy/errorfiles/503.httperrorfile 504 /etc/haproxy/errorfiles/504.http#:wq! #保存退出service haproxy start #启动service haproxy stop  #关闭service haproxy restart 

23、60;#重启6、设置HAProxy日志vi  /etc/syslog.conf  #编辑,在最下边增加# haproxy.loglocal0.*          /var/log/haproxy.loglocal3.*          /var/log/haproxy.log:wq! #保存退出vi  /etc/sysconfig/syslog 

24、0; #编辑修改SYSLOGD_OPTIONS="-r -m 0"   #接收远程服务器日志:wq! #保存退出service syslog restart  #重启syslog三、安装keepalived下载keeplived:/software/keepalived-1.2.12.tar.gz上传keepalived-1.2.12.tar.gz到/usr/local/src目录cd /usr/local/srctar zxvf keepalived-1.

25、2.12.tar.gzcd keepalived-1.2.12./configure  #配置,必须看到以下提示,说明配置正确,才能继续安装Use IPVS Framework : YesIPVS sync daemon support : YesUse VRRP Framework       : Yesmake #编辑make install  #安装cp /usr/local/etc/sysconfig/keepalived  /etc/sysconfig/mkdir

26、/etc/keepalivedcp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/cp /usr/local/sbin/keepalived /usr/sbin/cp /usr/local/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/chmod +x /etc/rc.d/init.d/keepalived  #添加执行权限chkconfig keepalived on  #设置开机启动service keepalived star

27、t #启动service keepalived stop  #关闭service keepalived restart  #重启四、配置keepalivedcp /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf-bakvi /etc/keepalived/keepalived.conf  #编辑,修改为以下代码#以下为29服务器:! Configuration File for keepalivedglobal_

28、defs notification_email acassenfirewall.locfailoverfirewall.locsysadminfirewall.locnotification_email_from Alexandre.Cassenfirewall.locsmtp_server smtp_connect_timeout 30router_id LVS_DEVELvrrp_script chk_haproxy script "/etc/keepalived/check_haproxy.sh"  #HAproxy服务监

29、控脚本interval 2weight 2vrrp_instance VI_1 state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication auth_type PASSauth_pass 1111track_script chk_haproxy #监测haproxy进程状态virtual_ipaddress 53notify_master "/etc/keepalived/clean_arp.sh  53&q

30、uot;  #更新虚拟服务器(VIP)地址的arp记录到网关vrrp_instance VI_2 state BACKUPinterface eth0virtual_router_id 52priority 99advert_int 1authentication auth_type PASSauth_pass 1111virtual_ipaddress 54notify_master "/etc/keepalived/clean_arp.sh  54"  #更新虚拟服务器(V

31、IP)地址的arp记录到网关#:wq! #保存退出#以下为30服务器:30! Configuration File for keepalivedglobal_defs notification_email acassenfirewall.locfailoverfirewall.locsysadminfirewall.locnotification_email_from Alexandre.Cassenfirewall.locsmtp_server smtp_connect_timeout 30router_id

32、 LVS_DEVELvrrp_script chk_haproxy script "/etc/keepalived/check_haproxy.sh"  #HAproxy服务监控脚本interval 2weight 2vrrp_instance VI_1 state BACKUPinterface eth0virtual_router_id 51priority 99advert_int 1authentication auth_type PASSauth_pass 1111track_script chk_haproxy #监测haproxy

33、进程状态virtual_ipaddress 53notify_master "/etc/keepalived/clean_arp.sh  53"  #更新虚拟服务器(VIP)地址的arp记录到网关vrrp_instance VI_2 state MASTERinterface eth0virtual_router_id 52priority 100advert_int 1authentication auth_type PASSauth_pass 1111virtual_ipaddress 192

34、.168.21.254notify_master "/etc/keepalived/clean_arp.sh  54"  #更新虚拟服务器(VIP)地址的arp记录到网关#系统运维    温馨提醒:qihang01原创内容 版权所有,转载请注明出处及原文链接:wq! #保存退出五、设置HAproxy服务监控脚本vi  /etc/keepalived/check_haproxy.sh #编辑,添加以下代码#!/bin/shif $(ps -C haproxy -no-hea

35、der | wc -l) -eq 0 ; then/etc/rc.d/init.d/haproxy  startfisleep 2if $(ps -C haproxy -no-header | wc -l) -eq 0 ; then/etc/rc.d/init.d/keepalived  stopfi#:wq! #保存退出chmod +x /etc/keepalived/check_haproxy.sh   #添加执行权限六、设置更新虚拟服务器(VIP)地址的arp记录到网关脚本vi  /etc/keepalived/cle

36、an_arp.sh  #编辑,添加以下代码#!/bin/shVIP=$1GATEWAY= #网关地址/sbin/arping -I eth0 -c 5 -s $VIP $GATEWAY &>/dev/null:wq!  #保存退出chmod +x /etc/keepalived/clean_arp.sh  #添加脚本执行权限七、系统内核优化在两台HAProxy服务器上分别执行以下命令echo 1024 60999 > /proc/sys/net/ipv4/ip_local_port_rangeecho 30 > /proc/sys/net/ipv4/tcp_fin_timeoutecho 4096 > /proc/sys/net/ipv4/tcp_max_syn_backlogecho 262144 > /proc/sys/net/ipv4/tcp_max_tw_bucketsecho 262144 > /proc/sys/net/ipv4/tcp_max_orphansecho 300 > /proc/sys/net/ipv4/tcp_keepal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论