HAProxy 简介
Posted 血衫非弧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HAProxy 简介相关的知识,希望对你有一定的参考价值。
血衫平时会玩一些日服韩服游戏,有的游戏还会限定某个地区的IP才能够接入。对于一些对丢包率特别敏感的游戏(比如舰队Collection),在游戏时就必须搭建一个中继服务器,从本地直连到丢包率低的中继服务器,再连接到目标服务器,这样我们就能够形成一条丢包率较低的线路。
HAProxy
是一款HTTP/TCP负载均衡器,使用 HAProxy 可以达到中继服务器的效果(算是杀鸡用牛刀的一个案例Orz)。
这篇文章介绍 Haproxy 的基本功能特性和它的简单应用。
介绍
HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,具备媲美商用负载均衡器的性能和稳定性,它当前不仅仅是免费负载均衡软件的首选,更几乎成为了唯一选择。
HAProxy的核心功能
负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
健康检查:支持TCP和HTTP两种健康检查模式
会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
HTTP请求重写与重定向
监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态
HAProxy的关键特性
采用单线程、事件驱动、非阻塞模型,减少上下文切换的消耗,能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。
大量精细的性能优化,如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等,这些技术使得HAProxy在中等负载下只占用极低的CPU资源。
HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。
HAProxy作者在8年前(2009)年使用1.4版本进行了一次测试,单个HAProxy进程的处理能力突破了10万请求/秒,并轻松占满了10Gbps的网络带宽。
HAProxy的大部分工作都是在操作系统内核完成的,所以HAProxy的稳定性主要依赖于操作系统,作者建议使用2.6或3.x的Linux内核,对sysctls参数进行精细的优化,并且确保主机有足够的内存。这样HAProxy就能够持续满负载稳定运行数年之久。
安装
Debian 系的安装非常简单:
sudo apt-get -y install haproxy
编辑文件/etc/haproxy/haproxy.cfg
,全文替换:
global
ulimit-n 51200
defaults
log global
mode tcp
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend ss-in
bind *:relay_server_port # 中继端口,或端口范围,30000-40000
default_backend ss-out
backend ss-out
server server1 proxy_server_ip:proxy_server_port maxconn 20480 # 目标服务器,可以带上对方的端口号。不带的话则是与中继端口一一对应
使用命令
启动:service haproxy start
停止:service haproxy stop
重启:service haproxy restart
重载:service haproxy reload
状态:service haproxy status
参考资料
HAProxy从零开始到掌握
利用Haproxy进行SS代理中继
负载均衡:haproxy,slb以及node-slb
「滋磁一下」
以上是关于HAProxy 简介的主要内容,如果未能解决你的问题,请参考以下文章