首页 > IT职业 > IT图书 > HAProxy高性能软负载均衡器
现在公司实现高可用已经成为必不可少的一环,在众多的负载均衡集群方案中,Haproxy是比较有名的一个。它可以实现TCP或Http的负载均衡。优点如下:
借用官网的图,图中的HA即为Haproxy软件,下面的PROXY为要代理的服务器,客户端只需要访问HA,相当于在访问PROXY。

像这种软件的东西,直接动手比说理论有用的多。我还是基于Docker演示,明白其原理主要是配置文件,用虚拟机或容器都是类似的。
拉取Haproxy:1.8镜像
docker pull haproxy:1.8 docker pull httpd:2.4
docker run -it -d --name web1 httpd:2.4
docker run -it -d --name web2 httpd:2.4
docker run -it -d --name web-static httpd:2.4
docker exec -it web1 /bin/bash 进入容器之后分别修改其html页面
Haproxy的配置文件主要分为几部分
在官方的网站中,所有的配置指令都有详细的解释,网址在文末的参考中。
我们的配置如下
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend main
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static
default_backend app
bind :80
backend static
balance roundrobin
server static 172.17.0.5:80 check
backend app
balance roundrobin
server app1 172.17.0.3:80 check
server app2 172.17.0.4:80 check 在访问同一台服务器,可以看到响应的内容确实转发到后端不同的服务器上面

纸上得来终觉浅,绝知此事要躬行。Haproxy一直在大脑中停留着,亲自配置一遍才知道其是怎么回事。中间遇到两个问题
让配置生效之前先用haproxy -c检查一下配置文件是否正确
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4758/viewspace-2806750/ ,如需转载,请注明出处,否则将追究法律责任。