haproxy群集调度器搭建web群集
1:haproxy调度器是目前市场上比较流行的群集调度器,当然调度器有好多种类:lvs、nginx、和haproxy,接下来对它们进行比较看看它们的优缺点:
lvs:工作在七层模型的4层传输层:根据ip+端口进行访问;不考虑访问的内容,可以任意访问,基于ip地址,能实现所有应用构建的群集,性能好,可以和keepalived完美结合。稳定性能好。健康检查节点服务器性能较好;搭建时结构相对复杂
nginx:工作在7层应用层,根据内容、ip网页进行给用户分配内容,健康检查节点服务器功能较弱,要配合upstream模块可对群集进行管理
haproxy:同样也工作在7层的程序,但它的配置简单,也可以和keepalived完美结合
2:haproxy对http的请求:
分为两种方式:
GET:提交用户的访问,属于明文提交,提交内容不得超过8kb,安全性差
POST: 属于加密传输;安全性较好
通过访问一般反馈给客户端的状态码为:(200.301)如果返回的是(400、500)表示发生异常或者错误
3:负载均衡群集的调度算法(lvs、nginx、harpoxy常用)
(1)RR:轮询调度算法;根据节点服务器的权重轮询分配访问请求
(2)LC:最小连接数算法;根据节点服务器的连接数多少分配给连接数最少的节点服务器
(3)SH: 基于来源访问调度算法法;根据实际环境情况,对访问客户进行有选择的进行连接节点服务器
当然还有许多的web群集调度器;如梭子鱼、绿盟等
4:本次使用的环境案例是两台web服务和一台harpoxy服务器
编译安装Haproxy
#yum -y install pcre-devel bzip2-devel 解决依赖关系安装关系库
[[email protected] haproxy-1.4.24]# tar xf /mnt/haproxy-1.4.24.tar.gz -C /usr/src
[[email protected] haproxy-1.4.24]# cd /usr/src/haproxy-1.4.24
#make TARGET=linux26 使用linux的2.6版本内核
#make install
haproxy服务器配置
(1)、建立haproxy的配置文件
#mkdir /etc/haproxy
#cp examples/haproxy.cfg /etc/haproxy/ 将haproxy文件的模板复制的/etc/haproxy目录中文以后的修改增加便捷
#vim /etc/haproxy/haproxy.cfg 文件的配置内容有三部分 global全局配置、defaults默认配置、listen应用组件配置配置内容如下
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
# chroot /usr/share/haproxy
uid 99
gid 99
daemon
nbproc 4
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
# redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.2.2:80 check inter 2000 fall 3
server inst2 192.168.2.3:80 check inter 2000 fall 3
(2)创建自启动脚本
#cp/usr/src/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy 做软连接,在环境变量中使用haproxy
# chmod +x /etc/init.d/haproxy 给文件可执行权限
#service haproxy start
#service iptables stop
(3)测试web群集 web1网页内容为how are you web2 内容为welcome to beijing 为了测试负载均衡所以将网页内容设置为不同
(4)haproxy的日志 ;由于haproxy的日志存放在系统日志中不方便管理所以将日志的等级分为不同的日志从放目录:
创建一个关于haproxy的目录为以后的管理方便:
touch /etc/rsyslog.d/haproxy.conf的文件
在配置/etc/rsyslog.d/haproxy.conf文件之前先修改/etc/haproxy/haproxy.cfg文件内容如下: 完成后重启haproxy服务
vim /etc/rsyslog.d/haproxy.conf
if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘info‘) then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == ‘haproxy‘ and $syslogseverity-text == ‘notice‘) then -/var/log/haproxy/haproxy-notice.log
& ~
配置完成后要重新启动rsyslog服务 service rsyslog restart
测试日志信息
# tail -f /var/log/haproxy/haproxy-info.log tail -f 表示动态刷新,查看
然后在客户机上访问,观察日志