为什么使用Haproxy而不用Nginx?
负载分为四层负载和七层负载。
HAproxy: 是基于四层和七层的转发,是专业的代理服务器
Nginx: 是WEB服务器,缓存服务器,又是反向代理服务器,可以做七层的转发
四层负载和七层负载
四层负载:工作在 OSI 模型的第四层,即传输层(TCP 位于第四层),它是根据 IP 端口进行转发(LVS 支持四层负载)。RabbitMQ 是 TCP 的 5672 端口。
七层负载:工作在第七层,应用层(HTTP 位于第七层)。可以根据请求资源类型分配到后端服务器(Nginx 支持七层负载;HAProxy 支持四层和七层负载)。
为什么说HAproxy是专业的代理服务器?
1、监控指标
nginx只提供7种不同的指标。
活动连接:当前活动客户端连接数,包括等待连接。
接受:接受的客户端连接总数。
handling:已处理连接的总数。通常,参数值与accept 相同,除非已达到某些资源限制(例如,worker_connections限制)。
请求:客户端请求的总数。
读取:nginx正在读取请求头的当前连接数。
写入:nginx将响应写回客户端的当前连接数。
等待:等待请求的当前空闲客户端连接数。
HAProxy提供83种不同的指标。
0. pxname [LFBS]:代理名称1. svname [LFBS]:服务名称(FRONTEND用于前端,BACKEND用于后端,任何名称用于服务器/侦听器)2. qcur [..BS]:当前排队的请求。对于后端,这将报告未分配服务器的队列号。3. qmax [..BS]:qcur的最大值4. scur [LFBS]:当前会话5. smax [LFBS]:最大会话6. slim [LFBS]:配置的会话限制7. stot [LFBS]:累计数连接8. bin [LFBS]:字节输入9. bout [LFBS]:字节输出[...] 32. 类型[LFBS] :( 0 =前端,1 =后端,2 =服务器,3 =套接字/监听器)33. rate [.FBS]:每秒的会话数超过最后一秒34. rate_lim [.F ..]:每秒新会话的配置限制35. rate_max [.FBS]:每秒新会话的最大数量36. check_status [... S]:上次健康检查的状态,其中一个:37. check_code [... S]:layer5-7代码,如果可用38. check_duration [... S]:以ms为单位完成上次健康检查所用的时间39. hrsp_1xx [.FBS]:带1xx代码的http响应40. hrsp_2xx [.FBS]:具有2xx代码的http响应41. hrsp_3xx [.FBS]:具有3xx代码42. http响应.hrsp_4xx [.FBS]:具有4xx代码的http响应43. hrsp_5xx [.FBS]:http响应5xx代码44. hrsp_other [.FBS]:与其他代码的http响应(协议错误)[...]
2、监控统计界面
Nginx监控统计界面简单
HAProxy统计页面