码迷,mamicode.com
首页 > 其他好文 > 详细

haproxy+keepalived的搭建

时间:2018-08-17 11:13:29      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:连接数   声明   事物   刷新   route   服务器密码   add   网站   调用   

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日志

haproxy+keepalived的搭建

标签:连接数   声明   事物   刷新   route   服务器密码   add   网站   调用   

原文地址:http://blog.51cto.com/13399294/2161032

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!