此文为Haproxy的简单使用介绍,内容不全,错误之处欢迎指正
Haproxy主要做7层负载均衡,但是也可以做4层负载均衡。Haproxy的配置文件主要分为五个部分:global、defaults、frontend、backend、listen,这五部分。
- global: 设置全局参数
- defaulets: 配置默认参数,这些参数可以被用到frontend、backend、listen组件
- fronted: 接收请求的前端虚拟节点
- backend: 后端服务集群的配置,是真实服务器,一个backend可以对应一个或者多个server
- listen: frontend和backend的组合体
案例一、listen方式来进行代理
[root@bogon haproxy]# cat haproxy.cfg
listen master
bind 0.0.0.0:8080
mode http
timeout queue 1h
timeout connect 10m
timeout client 1h
timeout server 1h
timeout tunnel 1h
timeout check 10m
balance roundrobin
server master 192.168.10.129:80 check
listen node1
bind 0.0.0.0:8081
mode http
timeout queue 1h
timeout connect 10m
timeout client 1h
timeout server 1h
timeout tunnel 1h
timeout check 10m
balance roundrobin
server node1 192.168.10.130:80 check
listen node2
bind 0.0.0.0:8082
mode http
timeout queue 1h
timeout connect 10m
timeout client 1h
timeout server 1h
timeout tunnel 1h
timeout check 10m
balance roundrobin
server node2 192.168.10.128:80 check
如上所示,有三个节点,master、node1、node2,三个节点的ip分别为129、130、128,其中master上运行haproxy服务,当访问master(192.168.10.129)的不通端口时会代理到不通的后端服务上。 结果如下图所示: 访问8080端口,跳转到后端master节点
访问8081端口,跳转到node1节点
访问8082端口,跳转到node2节点
案例二、在frontend中直接指定后端server
[root@bogon haproxy]# cat haproxy.cfg
frontend webser
option forwardfor
bind *:8090
default_backend app
backend app
balance roundrobin
server app1 192.168.10.130:80 check
server app2 192.168.10.128:80 check
如上,当访问master节点的8090端口时,会根据roundrobin方法进行负载均衡