设为首页 收藏本站
查看: 898|回复: 0

[经验分享] haproxy+keepalived的搭建

[复制链接]

尚未签到

发表于 2018-12-29 14:22:14 | 显示全部楼层 |阅读模式
HAProxy集群(LB负载均衡)
工作模式:
Mode http
客户端请求被深度分析后再发往服务器
Mode tcp
客户端与服务器之间会话,不检查第七层信息
Mode health
仅做健康状态检查
HTTP协议是事物驱动的每个请求(Request)仅对应一个响应(Response)
常见模型:
1.HTTP close
2.HTTP-alive
3.Pipelinig
HTTP close
客户端向服务器建议一个TCP连接
客户端发送请给服务器
服务器响应客户端请求后即断开连接
如果客户端到服务器的请求不止一个,那么就要不断的去建立连接
TCP三次握手消耗相对较大的系统资源,同时延迟较大
HTTP-alive
一次连接可以传输多个请求
客户端需要知道传输内容的长度,以避免无限期的等待传输结果
降低两个HTTP事物间的延迟
需要相对较少的服务资源
Pipelining
任然使用Keep-alive
在发送后续请求前,不用等前面的请求已经得到回应
适用于有大量的图片页面
降低了多次请求之间的网络延迟
HAProxy配置参数来源
命令行:总是具有最高优先级
global部分:全局设置进程级别参数
代理声明部分:default、listen、frontend、backend
配置文件的构成:
default:为后续的其他部分设置缺省参数
缺省参数可以被后续部分重置
listen:把frontend和backend结合在一起的完整声明
frontend:描述接收客户端侦听套接字(socket)集
backend:描述转发链接的服务器集
搭建LAMP环境
yum -y install php-mysql mysql-server mysql php httpd
起服务:service httpd  start
chkconfig httpd on
service mysqld start
chkconfig mysqld on
配置分发器(192.168.4.50) ,web1(192.168.4.53),web2(192.168.4.54)
1 装包
yum list |grep -i haproxy 在yum源里查看有没有haproxy软件包
rpm -ivh haproxy-1.5.4-2.el6.x86_64.rpm
rpm -qc haproxy 查看配置文件
2 修改配置
cp /etc/haproxy/haproxy.cfg  /root/
vim  /etc/haproxy/haproxy.cfg
.....
global
log 127.0.0.1 local2  
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid  ##haproxy的pid存放路径
maxconn 4000   ##最大连接数,默认4000
user haproxy   ##默认用户
group haproxy  ##默认用户组
daemon         ##创建1个进程进入deamon模式运行
.....
defaults
mode http      ##默认的模式mode{tcp|http|health}log global 采用全局定义的日志
option dontlognull ##不记录健康检查的日志信息
option httpclose   ##每次请求完毕后主动关闭http通道
option httplog     ##日志类别http日志格式
option forwardfor  ##后端服务器可以从http header中国的客户端ip
option redispatch  ##serverid服务器挂掉后强制定向到其他健康服务器
timeout connect 10000 ##如果backend没有指定,默认为10s
timeout client 300000 ##客户端连接超时
timeout server 300000 ##服务器连接超时
maxconn 60000         ##最大连接数
retries 3          ##3次连接失败就认为服务不可用,也可以通过后面设置
#listen stats
# bind  0.0.0.0:1080    ##监听端口
# stats  refresh 30s   ##统计页面自动刷新时间
# stats  uri /stats    ##统计页面URL
#stats  realm Haproxy Manager ##统计页面密码框上提示文本
# stats  auth admin:admin ##统计页面用户名和密码设置
#stats hide-version   ##显示统计页面上HProxy的版本信息
stats  uri /admin
listen  weblb  0.0.0.0:80
cookie  SERVERID rewrite
balance roundrobin
server web1 192.168.4.53:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server web2 192.168.4.54:80 cookie app1inst1 check inter 2000 rise 2 fall 5
mv /etc/haproxy/haproxy.cfg  /etc/haproxy/haproxy.cfg.back
vim  /etc/haproxy/haproxy.cfg
........
defaults
.......
stats  uri  /admin  (定义控制板)
frontend  weblb *:80
acl url_static          path_beg (匹配开头)       -i (不区分大小写)
acl urlhtml (名字)      path_end  (匹配结尾)   -i .html
acl urlphp             path_end                    -i .php
use_backend htmlgrp (名字)         if urlhtml (调用acl)
use_backend phpgrp                if urlphp
default_backend   htmlgrp  (默认backend)   
backend htmlgrp  (定义转发连接的服务器)
balance  roundrobin (rr调度算法)
server  web51 192.168.4.51:80 check
server  web52 192.168.4.52:80 check
backend  phpgrp
balance  roundrobin
server  web53 192.168.4.53:80 check
server  web54 192.168.4.54:80 check
service haproxy start
chkconfig haproxy on
chkconfig --list haproxy
http://www.baidu.com/abc  URL
abc  uri
=====================================================================
=====================================================================
keepalived(HA)任意单故障节点的高可用集群
1 在高可用集群主机上分别安装keepalived软件
2 分别修改服务的配置文件
3 分别启动keepalived服务
4 在高可用集群主机上分别是否获取VIP地址
5 254客户端访问
1 在高可用集群主机上分别安装keepalived软件
yum list |grep -i keepalived
yum -y install  keepalived
rpm -qc keepalived
2 分别修改服务的配置文件
主:
vim /etc/kepalived/kepalived.conf
global_defs {
notification_email {
abc@localhost   设置报警邮件人邮箱
}
notification_email_from Alexandre.Cassen@firewall.loc 设置发件人
smtp_server 192.168.200.1  定义邮件服务器      
smtp_connect_timeout 30            
router_id LVS_DEVEL          设置路由ID号         
}
vrrp_instance webha {  
state MASTER         主服务器为MASTER,辅助为SLAVE或BACKUP
interface eth0       定义网卡接口
virtual_router_id 51  主辅VRID号必须一致
priority 150       服务器优先级,越大优先级越高
advert_int 1     
authentication {
auth_type PASS
auth_pass 123456  主辅服务器密码必须一致
}
virtual_ipaddress { 设置VIP
192.168.4.251   可用多个   
}
}
辅:
vim /etc/kepalived/kepalived.conf
global_defs {
notification_email {
abc@localhost   
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1        
smtp_connect_timeout 30            
router_id LVS_DEVEL                  
}
vrrp_instance webha {  
state BACKUP         
interface eth0      
virtual_router_id 51  
priority 100      
advert_int 1     
authentication {
auth_type PASS
auth_pass 123456  
}
virtual_ipaddress {
192.168.4.251      
}
}
3 起服务(先起主服务)
ip add show  |grep 192.168.4
service keepalived start
nginx分析
优点:
工作在7层协议,可以针对http做分流策略
正则表达式比HAProxy强大
安装,配置,测试简单,通过日志可以解决多数问题
并发量可以达到几万次
Nginx还可以作为web服务器使用
缺点:
仅支持http,https,mail协议,应用面小
监控检查仅通过端口,无法使用URL检查
LVS分析
优点:
负载能力强,工作在4层协议,对内存,CPU消耗低
配置性低,没有太多可配置性,减少人为错误
应用面广,几乎可以为所有应用提供负载均衡
缺点:
不支持正则表达式,不能实现动静分离
如果网站架构庞大,LVS-DR配置比较繁琐
HAProxy分析
优点:
支持session,cookie功能
可以通过url进行健康性检查
效率,负载均衡速度,高于Nginx,低于LVS
HAProxy支持TCP,可以对MySQL进行负载均衡
调度算法丰富
缺点:
正则弱与Nginx
日志依赖于syslogd,不支持apache日志




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657318-1-1.html 上篇帖子: HAproxy+keepalived安装配置教程 下篇帖子: keepalived 发送告警邮件到外部邮箱
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表