Haproxy简单说明及应用

230 阅读1分钟

此文为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节点

image.png

访问8081端口,跳转到node1节点

image.png

访问8082端口,跳转到node2节点

image.png

案例二、在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方法进行负载均衡

image.png

image.png