Haproxy 高可用代理原理配置一学就会

今天给伙伴们分享一下Haproxy 高可用代理详解,希望看了有所收获。

我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!

如果伙伴们看了文档觉得有用,欢迎大家关注我的公众号,获取相关文档。爱运维,爱生活。

ha-03

一、HAProxy 简介

  • 官网:http://www.haproxy.com

  • HAProxy提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理高负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。

1、HAProxy 特点和优点

  • 支持原生SSL,同时支持客户端和服务器的SSL. https
  • 支持IPv6和UNIX套字节(sockets)
  • 支持HTTP Keep-Alive
  • 支持HTTP/1.1压缩,节省宽带
  • 支持优化健康检测机制(SSL、scripted TCP、check agent…)
  • 支持7层负载均衡。
  • 可靠性和稳定性非常好。
  • 并发连接40000-50000个,单位时间处理最大请求20000个,最大数据处理10Gbps.
  • 支持8种负载均衡算法,同时支持session保持。
  • 支持虚拟主机。
  • 支持连接拒绝、全透明代理。
  • 拥有服务器状态监控页面。
  • 支持ACL.

2、HAProxy 保持会话

  • HAProxy为了让同一客户端访问服务器可以保持会话。有三种解决方法:客户端IP、Cookie以及Session 客户端的id
    • HAProxy通过客户端IP进行Hash计算并保存,以此确保当相同IP访问代理服务器可以转发给固定的真实服务器。
    • HAProxy依靠真实服务器发送客户端的Cookie信息进行会话保持。
    • HAProxy将保存真实服务器的Session以及服务器标识,实现会话保持。(HAProxy只要求后端服务器能够在网络联通,也没有像LVS那样繁琐的ARP配置)

3、HAProxy 负载均衡算法

  • HAProxy的balance8种负载均衡算法:
    • roundrobin : 基于权重轮循。
    • static-rr : 基于权重轮循。静态算法,运行时改变无法生效
    • source : 基于请求源IP的算法。对请求的源IP进行hash运算,然后将结果与后端服务器的权重总数想除后转发至某台匹配服务器。使同一IP客户端请求始终被转发到某特定的后端服务器。
    • leastconn : 最小连接。(适合数据库负载均衡,不适合会话短的环境)
    • uri : 对部分或整体URI进行hash运算,再与服务器的总权重想除,最后转发到匹配后端。 http://www.qf.com/aa/bb/a.html
    • uri_param : 根据URL路径中参数进行转发,保证在后端服务器数量不变的情况下,同一用户请求分发到同一机器。 /web /new
    • hdr() : 根据http头转发,如果不存在http头。则使用简单轮循。

4、HAProxy主要工作模式

  • tcp模式:该模式下,在客户端和服务器之间将建立一个全双工的连接,且不会对7层的报文做任何处理的简单模式。此模式默认,通常用于SSL、SSH、SMTP应用。
  • http模式(一般使用):该模式下,客户端请求在转发给后端服务器之前会被深度分析,所有不与RFC格式兼容的请求都会被拒绝。

二、HAProxy 安装及配置文件参数

1、HAProxy 安装

[root@edenluo.com ~]# yum -y install haproxy

2、HAProxy 环境

  • haproxy 的配置文件通常分为三部分:
    • global(全局配置部分)
    • defaults(默认配置部分)
    • listen (应用组件部分)
1、 HAProxy 配置文件详解
[root@edenluo.com ~]# vim /etc/haproxy/haproxy.cfg

       ####################全局配置####################### 
       #######参数是进程级的,通常和操作系统(OS)相关######### 
global 
       maxconn 20480                   # 默认最大连接数 
       log 127.0.0.1 local0            # 日志输出配置,所有日志都记录在本机系统日志,通过local0输出
       log 127.0.0.1 local1 notice     # notice 为日志级别,通常有24个级别(error warring info debug)
       chroot /var/haproxy             # chroot运行的路径 
       uid 99                          # 所属运行的用户uid 
       gid 99                          # 所属运行的用户组 
       daemon                          # 以后台形式运行haproxy 
       nbproc 1                        # 进程数量(可以设置多个进程提高性能) 
       pidfile /var/run/haproxy.pid    # haproxy的pid存放路径,启动进程的用户必须有权限访问此文件 
       ulimit -n 65535                  # ulimit的数量限制 
       #####################默认设置###################### 
       ##这些参数可以被利用配置到frontend,backend,listen组件## 
defaults 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘嫣慕曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值