haproxy介绍

jopen 10年前

haproxy是一款高性能的负载均衡器。

在web端,目前可能很多人在利用nginx做反向代理,顺便也做了负载均衡的功能。

但实际上,利用nginx做负载均衡效率上稍有不足。因为nginx会先处理下HTTP的头,然后到了具体的Web服务器,又解析了一把HTTP头。这个解析的过程是比较耗时的。

实际上,如果这个时候采用TCP转发,那就高效多了。Haproxy就是干这个事情的。当然,Haproxy也能工作在http模式下。

比如,还是以之前的代理服务器来说事。我们的代理服务器本身是单进程,单线程的。但是我们希望一台服务器上有4个进程同时工作。那我们可以这样设计,将这4个进程分别绑定在8081,8082,8083,8084端口。然后在haproxy里边,监听在8080端口,把到8080端口的请求,均衡到8081~8084这四个进程。

 

我们的haproxy配置文件大致如下:

...

frontend proxy      bind *:8080      mode tcp      log global      option tcplog      backlog 4096      default_backend PROXY_BE

后端的PROXY_BE如下:

backend PROXY_BE      mode tcp      option tcplog      balance roundrobin      server  s1 127.0.0.1:8081      server  s2 127.0.0.1:8082      server  s2 127.0.0.1:8083      server  s2 127.0.0.1:8084

关于haproxy的具体配置可以参考他的手册。