Haproxy+Keepalived配置WEB负载均衡及动静分离

二、环境介绍

系统版本: CentOS 6.4_x86_64

Keepalived版本: keepalived-1.2.7 点此下载

Haproxy版本: Haproxy-1.4.24 点此下载

拓扑介绍:

前端HA1与HA2服务器上安装Keepalived+Haproxy软件,两台服务器互为主备而初始状态是每台服务器上各有一个虚拟IP地址【HA1的VIP:172.16.14.10 HA2的VIP:172.16.14.11】;后台WEB1与WEB2服务器上面安装Apache软件实现负载均衡;而LAMP服务器只负责解析php程序,当用户访问的是静态页面时会由前端调度器分发到处理静态请求的服务器,如果访问的是php的动态页面,将会被分发到lamp动态服务器进行处理,实现了动、静分离的效果,

三、安装后端服务器

1、安装LAMP服务器并测试

[root@lamp ~]# yum -y install httpd php mysql-server######创建测试页[root@lamp ~]# vim /var/www/html/index.php<h1>LAMP: 172.16.14.5</h1><?phpphpinfo();[root@lamp ~]# service httpd start[root@lamp ~]# chkconfig httpd on

2、安装WEB1服务器的HTTPD服务并访问测试

[root@WEB1 ~]# yum -y install httpd[root@WEB1 ~]# service httpd start[root@WEB1 ~]# chkconfig httpd on[root@WEB1 ~]# echo “<h1>WEB1:172.16.14.3</h1>” > /var/www/html/index.html

3、安装WEB2服务器的HTTPD服务并访问测试

[root@WEB2 ~]# yum -y install httpd[root@WEB2 ~]# service httpd start[root@WEB2 ~]# chkconfig httpd on[root@WEB2 ~]# echo “<h1>WEB2:172.16.14.4</h1>” > /var/www/html/index.html

四、安装并配置Haproxy

1、在HA1服务器安装Haproxy

######安装开发环境[root@HA1 ~]# yum -y install gcc gcc-c++[root@HA1 ~]# tar xf haproxy-1.4.24.tar.gz[root@HA1 ~]# cd haproxy-1.4.24[root@HA1 haproxy-1.4.24]# uname -r2.6.32-358.el6.x86_64[root@HA1 haproxy-1.4.24]# make TARGET=linux26 ARCH=x86_64[root@HA1 haproxy-1.4.24]# make install######注释:TARGET指定内核版本,而uname -r是查看内核版本;ARCH指定CPU架构———————————————————————-######为Haproxy提供主配置文件与服务脚本,并将其添加到系统服务[root@HA1 haproxy-1.4.24]# mkdir /etc/haproxy[root@HA1 haproxy-1.4.24]# cp examples/haproxy.cfg /etc/haproxy[root@HA1 haproxy-1.4.24]# cp examples/haproxy.init /etc/init.d/haproxy[root@HA1 haproxy-1.4.24]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy[root@HA1 haproxy-1.4.24]# chmod +x /etc/init.d/haproxy[root@HA1 haproxy-1.4.24]# chkconfig –add haproxy

2、修改主配置文件

######创建Haproxy的工作目录[root@HA1 ~]# mkdir /usr/share/haproxy[root@HA1 ~]# vim /etc/haproxy/haproxy.cfg# this config needs haproxy-1.1.28 or haproxy-1.2.1globallog 127.0.0.1 local0#日志配置,所有日志都记录在本地,通过local0输出log 127.0.0.1 local1 noticemaxconn 25600#最大连接数chroot /usr/share/haproxy#改变Haproxy的工作目录uid 99#用户的UIDgid 99#用户的GIDnbproc 1#进程数据(可以设置多个)daemon#以后台守护进程方式运行Haproxy#debug#是否开启调试defaultslog globalmode http#默认使用协议,可以为{http|tcp|health} http:是七层协议 tcp:是四层 health:只返回OKoption httplog#详细记录http日志option dontlognull#不记录健康检查的日志信息retries 3#3次连接失败则认为服务不可用option redispatch#ServerID对应的服务器宕机后,强制定向到其他运行正常的服务器maxconn 30000#默认的最大连接数contimeout 5000#连接超时clitimeout 50000#客户端超时srvtimeout 50000#服务器超时timeout check 1s#心跳检测超时timeout http-request 10s #默认http请求超时时间timeout queue1m #默认队列超时时间timeout connect10s #默认连接超时时间timeout client1m #默认客户端超时时间timeout server1m #默认服务器超时时间timeout http-keep-alive 10s #默认持久连接超时时间listen statsmode httpbind 0.0.0.0:8090#指定IP地址与Portstats enable#开启Haproxy统计状态stats refresh 3s#统计页面自动刷新时间间隔stats hide-version#状态页面不显示版本号stats uri /allen#统计页面的uri为”/allen”stats realm Haproxy\ allen #统计页面认证时提示内容信息stats auth admin:admin#统计页面的用户名与密码stats admin if TRUE#启用或禁用状态页面frontend allen#定义前端服务器bind *:80mode httpoption httpclose#每次请求完成主动关闭http连接option forwardfor#后端服务器获取客户端的IP地址,可以从http header中获取acl url_static path_end -i .html .jpg .gif #定义ACL规则以如”.html”结尾的文件;-i:忽略大小写acl url_dynamic path_end -i .phpdefault_backend webservers #客户端访问时默认调用后端服务器地址池use_backend lamp if url_dynamic #调用后端服务器并检查ACL规则是否被匹配backend webservers#定义后端服务器balance roundrobin#定义算法;基于权重进行轮询server web1 172.16.14.3:80 check rise 2 fall 1 weight 2server web2 172.16.14.4:80 check rise 2 fall 1 weight 2backend lampbalance source#定义算法;源地址hash运算;类似于Nginx的ip_hashserver lamp 172.16.14.5:80 check rise 2 fall 1———————————————————————-#####注释:check:启动对后端server的健康状态检测;rise:离线的server转换到正常状态成功检查的次数;fall:确认server从正常状态转换为不可用状态需要检查的次数;weight:权重,数量越大,超重越高

3、启动Haproxy服务并做访问测试

[root@HA1 ~]# service haproxy start

4、在HA2服务器上安装Haproxy;这里就不在介绍了,,安装与配置方法与在HA1服务器上安装相同

五、安装配置Keepalived

1、在HA1与HA2服务器上安装Keepalived

[root@HA1 ~]# yum -y install keepalived[root@HA2 ~]# yum -y install keepalived明天的希望,让我们忘了今天的痛苦

Haproxy+Keepalived配置WEB负载均衡及动静分离

相关文章:

你感兴趣的文章:

标签云: