HAproxy简介

1. 基本概念

一种高效、可靠、免费的高可用及负载均衡软件,非常适合于高负载站点的七层数据请求。客户端通过Haproxy代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器

实现了一种事件驱动、单一进程模型,能支持非常大的并发连接数

同一客户端访问服务器,Haproxy保持回话的三种方案:

  • Haproxy将客户端ip进行Hash计算并保存,由此确保相同IP访问时被转发到同一真实服务器上。
  • Haproxy依靠真实服务器发送给客户端的cookie信息进行回话保持。
  • Haproxy保存真实服务器的session及服务器标识,实现会话保持功能。

2. 负载均衡类型

  •  
  • 七层应用代理:Haproxy会分析应用层协议,并且能通过运行、拒绝、交换、增加、修改或者删除请求(request)或者回应(reponse)里指定内容来控制协议。可用于HTTP代理或https代理。

2.1 无负载均衡

简单的无负载均衡Web应用环境, 用户会直接接入Web服务器,即kevin.com且其中不存在负载均衡机制。如果单一Web服务器发生故障,用户将无法接入该服务器。另,若多位用户同时访问该服务器,且其无法处理该负载,则会出现响应缓慢或者无法接入的情况

2.2 四层负载均衡

最为简单的负载均衡方式,将网络流量引导至多台服务器以使用四层(即传输层)负载均衡。这种方式会根据IP范围与端口进行用户流量转发(例如:有请求指向http://kevin.com/anything,则该流量将被转发至backend,即将用户请求转发至后端服务器的web-backend组。被选定的后端服务器将直接响应用户请求)

web-backend中的全部服务器都应当拥有同样的内容, 否则用户可能会遭遇内容不一致问题

2.3 七层负载均衡

网络流量使用7层负载均衡意味着均衡器能够根据用户的请求内容将请求转发至不同后端服务器。这种方式允许在同一域名及端口上运行多套Web应用服务器。例如:用户向kevin.com/blog发送请求,则会被转发至blog后端,其包含一组运行有同一blog应用的服务器。其它请求则会被转发至web-backend,其负责运行其它应用。

总的来说,它可以根据“IP+端口”的方式进行负载分流,还可以根据网站的URL、访问域名、浏览器类别、语言等决定负载均衡的策略

3. HAproxy配置文件详解

HAproxy配置中分成五部分内容,分别如下:

  1. global:  设置全局配置参数,属于进程的配置,通常是和操作系统相关。
  2. defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件;
  3. frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend;
  4. backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器;
  5. Listen :frontend和backend的组合体。

配置文件详解:

  • global:全局配置区域参数是进程级的,通常是和操作系统相关。这些参数一般只设置一次,如果配置无误,就不需要再次进行修改

  • defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件

 

  • frontend:处理请求的虚拟节点,Frontend可以将匹配到本地区域的请求交给下边的backend
  • backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器;

配置文件样例:

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
haproxy的启动命令可以根据不同的需求选择不同的选项。以下是几个常用的haproxy启动命令选项: 1. 检查配置文件语法:haproxy -c -f /usr/local/haproxy/conf/haproxy.cfg 2. 启动调试功能,将显示所有连接和处理信息在屏幕上:haproxy -d -f /usr/local/haproxy/conf/haproxy.cfg 3. 重启:haproxy -f /usr/local/haproxy/conf/haproxy.cfg [-p /var/run/haproxy.pid] -st `cat /var/run/haproxy.pid` 4. 配置热重启,即reload:haproxy -f /usr/local/haproxy/conf/haproxy.cfg [-p /var/run/haproxy.pid] -sf `cat /var/run/haproxy.pid` 5. 显示haproxy编译和启动信息:haproxy -vv 需要注意的是,restart会直接关掉旧进程并建立新进程,所以会丢弃大量已建立的连接,而reload会启动新进程,但旧进程会先处理完当前已建立的连接然后再关闭。但是,reload仍然会丢弃少量的连接。如果需要实现完全无损重启,可以考虑在haproxy启动命令中加入-x选项,并要求在haproxy配置文件的"stats socket"配置中加入expose-fd listeners选项。这样,在reload haproxy时,已建立的TCP连接将会转移到Unix Domain状态套接字中进行处理。 此外,haproxy的启动命令也可以使用类似以下的方式进行自定义编译和启动: - 自己使用cygwin64编译官方haproxy-1.9-dev5.tar.gz文件,并使用命令haproxy.exe -f haproxy.cfg -d进行启动。 - 使用-D -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)命令进行启动。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Haproxy详细配置及命令](https://blog.csdn.net/Persistence___/article/details/124953434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [编译window版haproxy1.9](https://download.csdn.net/download/wangyue20075/10758483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [HAProxy简介及启动命令相关选项介绍](https://blog.csdn.net/u011489186/article/details/121472496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值