Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1649446
  • 博文数量: 63
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-26 18:02
个人简介

祸兮福之所倚,福兮祸之所伏

文章分类

全部博文(63)

文章存档

2020年(11)

2019年(10)

2017年(10)

2016年(25)

2015年(7)

我的朋友

分类: 系统运维

2017-01-29 20:41:43

      HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。


HAProxy实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

      HAProxy是一款优秀的开源的提供高可用负载均衡和反向代理的软件,跟nginx一样能提供七层的代理和负载均衡服务。
      在x86或x86_64平台上,要获取最好性能的负载均衡器,建议按顺序考虑以下方案。
Linux 2.6.32及之后版本上运行HAProxy 1.4-;
打了epoll补丁的Linux 2.4上运行HAProxy 1.4-;
FreeBSD上运行HAProxy 1.4-;
Solaris 10上运行HAProxy 1.4-;

总的来说haproxy能支持七层和四层代理,可以作为一般中小型系统的前端web代理(七层,主要代理web服务),又可以作为四层代理,我们系统使用haproxy作为mycat数据库代理,上线运行一年多还未出现关于haproxy的问题。

安装haproxy   (centos6平台)
   直接使用yum install haproxy  安装

   haproxy主要在于配置文件,默认位置 /etc/haproxy/haproxy.cfg 
   haproxy有多种配置方式,本次主要使用负载均衡类配置

关键标签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                            后台运行

#debug

#quiet


defaults                         标签         

log  global          

mode  http                                  

option  httplog

option  dontlognull

retries 3

redispatch

maxconn 2000

contimeout  5000

clitimeout  50000

srvtimeout  50000



   介绍自己的配置,较简单,global和default部分不再写

开启haproxy统计功能,此功能能显示当前所有状态,包括后端应用状态,连接数,负载状态等
 listen   admin_stats
               bind         0.0.0.0:1080
               mode         http
               option       httplog
               maxconn      10
               stats        refresh   20s
               stats uri    /stats
               stats realm  XingCloud\ Haproxy  #统计页面密码框上提示文本
               stats  auth admin:admin          #统计页面用户名和密码设置
               stats  hide-version


#一个四层负载均衡实例,对于mysql进行负载

listen  globalmysql                                  #  实例名,本实例是对mysql进行负载
                 bind 0.0.0.0:3307                  #实例监控端口
                 balance roundrobin                #负载策略,轮询
                 mode tcp                               #使用tcp协议,还有http协议 
                 option      tcpka                      # 使用的健康状态检测机制
                 maxconn     4096                    #本实例最大连接数
                 server   mysql1   10.0.0.101:3306 check inter 1000 rise 2 fall 3            #后端真实应用地址和健康检测策略,可以拥有多个
                 server   mysql2   10.0.0.120:3306 check inter 1000 rise 2 fall 3



   #一个7层负载实例

listen   myweb
      band 0.0.0.0:80

mode http

balance leastconn#负载均衡算法
  option  httpchk HEAD /index.htm HTTP/1.0       #健康检查,访问index.html页面做检测
       option forwardfor               #后端web服务获取真实client ip

server  web1 10.16.0.9:8085 cookie 1 weight 5 check inter 2000 rise 2 fall 3

server  web2 10.16.0.10:8085 cookie 2 weight 3 check inter 2000 rise 2 fall 3


haproxy是软负载均衡中出场率较高的软件,极强的负载能力,功能也非常强大,支持虚拟主机等功能。



      
 

阅读(1388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~