haproxy
haproxy负载均衡(工作在应用层)
负载均衡选项:
1、简单的轮询,balance roundrobin;
2、根据请求的源IP,balance source;
3、根据请求的uri,balance uri;
4、根据请求RUL中的参数,balance url_param。
COOKIE 选项:
cookie JSESSIONID prefix :如果客户端只支持一个cookie,并且服务器上的应用程序已经对返回设置了cookie,HAProxy设置此选项可以改写应用程序设置的cookie信息,把服务器的信息添加到原cookie中去。
cookie SERVERID indirect :HAProxy会删除添加的cookie信息,避免此cookie信息发送到服务器。
cookie SERVERID rewrite :要不要记录cookie信息。
cookie SERVERID insert :
cookie SERVERID insert nocache :
cookie SERVERID insert postonly :
#yum -y install haproxy
#vim /etc/haproxy/haproxy.cfg
将frontend和backend删除,添加以下内容:
listen stats //访问健康性检查(http://ip:1080/stats)
bind ip:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #统计页面用户名和密码设置
stats hide-version #隐藏统计页面上HAProxy的版本信息
listen webserver ip:80 //配置调度
cookie SERVERID rewrite //要不要记录cookie信息
cookie SERVERID insert indirect nocache //同一客户端访问服务器,返还的是原来的服务器(记录cookie信息)
balance roundrobin //模式
server web1 192.168.4.2:80 cookie ck1 check inter 2000 rise 2 fall 5 //健康检查2000ms 连续2次 不健康5次
server web2 192.168.4.3:80 cookie ck2 check inter 2000 rise 2 fall 5
php html 分主机负载
vim /etc/haproxy/haproxy.cfg
frontend zlweblb(定义名) 192.168.4.99:80
acl webhtml(策略名) path_end(路径结尾) -i .html //path_beg(路径开头)
acl webphp path_end -i .php
use_backend phpgrp(组名) if webphp
use_backend htmlgrp if webhtml
default_backend (默认组名) htmlgrp
backend htmlgrp(定义组信息)
balance roundrobin
server web101 192.168.4.101:80 check
server web102 192.168.4.102:80 check
backend phpgrp
balance roundrobin
server web66 192.168.4.66:80 check
server web77 192.168.4.77:80 check
重启服务 测试