一、利用haproxy实现简单的负载均衡
1、各服务器IP地址
nodeboss:192.168.1.10
nodeOne:192.168.1.11
haproxy
eth0:192.168.42.141
eth1:192.168.1.1
2、配置Real-Server:
在两个node服务器上安装web服务
#yum install httpd -y
分别为两个服务器编写两个网页文件
3、安装配置haproxy
haproxy的eth1与nodeOne和nodeboss处于同一本地网络
安装服务
#yum install haproxy -y
编辑配置文件
在文件/etc/rsyslog.conf添加如下内容
local2.* /var/log/haproxy.log
4、在浏览器中输入:http://192.168.42.141,多次刷新观察是否能够轮询;或者使用curl http://192.168.42.141命令查询
二、配置文件解读
1、haproxy的配置
global setting:全局配置段
主要用于定义haproxy进程自身的工作特性
proxies:代理配置段
backend:后端服务器组
frontend:定义面向客户的监听地址和端口,以及关联到后端服务器组
listen:组合方式直接定义frontend及相关的baskend的一种机制
defaults:定义默认配置,定义
2、支持那些调度算法:
roundrobin:wrr、支持慢启动(slow start),dynamic,最多可以在后端支持4095个Server,可以为每个Server定义权重
static-rr:wrr,静态轮询调度,不支持慢启动,static,后端Server数量没有限制
leastconn:wlc,dynamic
source:主要曾对需要保持回话的动态请求;建议用于基于TCP模式调度且不使用cookie插入模式使用,有hash-type参数决定气味dunamic或这static相当于ipvs的sh,以及nginx的ip_hash
uri:主要对于缓存服务区;基于请求报文中的uri的左半部分(查询条件之前的部分)或全部的uri进行调度,常用于backend server为cache server的场景中;取决于hash-type参数数决定其为dunamic或着static
url_params:常用于后端服务器需要对用户进行认证的场景中,由hash-type参数数决定其为dunamic或着static
hdr(<name>):根据用户请求的报文中,制定的http首部的至进行调度
hdr(host):长用于实现将度itong一个虚拟主机的请求始终发往backend server
use_domain_only:在计算hash值时仅使用域名由hash-type参数数决定其为dunamic或着static