首页 > 其他 > 详细

haproxy

时间:2020-03-15 17:53:44      阅读:67      评论:0      收藏:0      [点我收藏+]

1. 简介

  Haproxy 提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机。

  haproxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。负载均衡LVS是基于四层。

  haproxy 高性能负载均衡优点如下:

  haproxy是支持虚拟主机的,可以工作在4/7层

  能够补充nginx 的一些缺点,比如 session 的保持、cookie 的引导等工作

  支持url 检测后端的服务器

  它跟lvs 一样,只是一款负载均衡软件,单纯从效率上来讲,haproxy 更会比nginx又更出色的负载均衡速度,在并发处理上也是优于nginx的

  haproxy可以对mysql 读进行负载均衡,对后端的MySQL节点进行 检测和负载均衡,haproxy 支持多种算法。

haproxy+keepalived 企业高性能web 能够支持千万级并发网站。

2. 安装配置

2.1  安装

下载网址:http://download.openpkg.org/components/cache/haproxy/

# wget http://download.openpkg.org/components/cache/haproxy/haproxy-1.8.10.tar.gz
# tar -xvf haproxy-1.8.10.tar.gz
# cd haproxy-1.8.10
# make TARGET=linux2628 PREFIX=/usr/local/haproxy/
# make install PREFIX=/usr/local/haproxy
# /usr/local/haproxy/sbin/haproxy -v

2.2 haproxy 配置文件详解

###########全局配置#########
global
  log 127.0.0.1 local3       # 日志输出配置,所有日志都记录在本机,通过local0输出
  log 127.0.0.1 local1 notice   #定义haproxy 日志级别[error warring info debug]
  daemon               #以后台形式运行harpoxy
  nbproc 8              #进程数量(可设置多个进程提高性能)
  maxconn 4096            #默认最大连接数
  uid                 #运行haproxy的用户uid
  gid                 #运行haproxy的用户所属组的gid
  pidfile /var/run/haproxy.pid   #haproxy 进程PID文件
  ulimit-n 65535          #ulimit 的数量限制
  chroot /usr/share/haproxy    #chroot运行路径
  debug                #haproxy 调试级别,建议只在开启单进程的时候调试
  quiet

########默认配置############
defaults
  log global
  mode http              #所处理的类别(7层http,四层tcp)
  maxconn  20480          #最大连接数
  option httplog           #日志类别http日志格式
  option httpclose         #每次请求完毕后主动关闭http通道   option dontlognull         #不记录健康检查的日志信息   retries
3              #3次连接失败就认为是服务器不可用,也可以通过后面设置   option forwardfor         #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip   option redispatch         #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器   option abortonclose        #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接   timeout connect 5000ms      #连接超时   timeout client 30000ms      #客户端超时   timeout server 30000ms     #服务器超时   #timeout check 2000        #心跳检测超时   #timeout http-keep-alive10s   #默认持久连接超时时间   #timeout http-request 10s    #默认http请求超时时间   #timeout queue 1m       #默认队列超时时间   balance roundrobin        #设置默认负载均衡方式,轮询方式   #balance source          #设置默认负载均衡方式,类似于nginx的ip_hash   #balnace leastconn       #设置默认负载均衡方式,最小连接数 ########监控页面配置######## listen stats            #Frontend和Backend的组合体,监控组的名称,按需自定义名称   bind 0.0.0.0:65535       # 监听端口   mode http             #http的7层模式   option httplog         #采用http日志格式   log 127.0.0.1 local3 err    #错误日志记录   maxconn 10            #默认的最大连接数   stats refresh 30s       #每个5s自动刷新监控页面   stats uri /stats         #监控页面url   stats realm Nanshan\ Haproxy #监控页面的提示信息   stats auth admin:admin     #设置监控页面的用户和密码:admin,可以设置多个用户名   stats auth wind:wind     #设置监控页面的用户和密码:wind   stats hide-version       #隐藏统计页面上HAProxy的版本信息   stats admin if TRUE       #设置手工启动/禁用,后端服务器
########设置haproxy 错误页面#####
#errorfile 403 /home/haproxy/haproxy/errorfiles/403.http
#errorfile 500 /home/haproxy/haproxy/errorfiles/500.http
#errorfile 502 /home/haproxy/haproxy/errorfiles/502.http
#errorfile 503 /home/haproxy/haproxy/errorfiles/503.http
#errorfile 504 /home/haproxy/haproxy/errorfiles/504.http

########frontend配置##############
frontend main
  bind *:80               #这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
  acl web hdr(host) -i www.abc.com  #acl后面是规则名称,-i为忽略大小写,后面跟的是要访问的域名,如果访问www.abc.com这个域名,就触发web规则,。
  acl img hdr(host) -i img.abc.com  #如果访问img.abc.com这个域名,就触发img规则。
  use_backend webserver if web   #如果上面定义的web规则被触发,即访问www.abc.com,就将请求分发到webserver这个作用域。
  use_backend imgserver if img   #如果上面定义的img规则被触发,即访问img.abc.com,就将请求分发到imgserver这个作用域。
  default_backend dynamic     #不满足则响应backend的默认页面

########backend配置##############
backend webserver 
  mode http                  #http的7层模式
  balance roundrobin             #balance roundrobin 负载轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
  option httpchk /index.html HTTP/1.0   #健康检查, 检测文件,如果分发到后台index.html访问不到就不再分发给它
  server web1 192.168.80.133:80 cookie 1 weight 5 check inter 2000 rise 2 fall 3
  server web2 192.168.80.134:80 cookie 2 weight 3 check inter 2000 rise 2 fall 3
  #cookie 1表示serverid为1,check inter 1500 是检测心跳频率 
  #rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重

2.3 配置haproxy 服务

# cd /usr/local/haproxy/
# mkdir etc
# touch /usr/local/haproxy/etc/haproxy.cfg

2.4 配置文件内容

 

haproxy

原文:https://www.cnblogs.com/sswind/p/12498662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!