listen 与 (frontend + backend) 的配置区别 frontend + backend 的配置示例及运行流程 这是一个 HTTP 代理在所有接口上监听端口 80 的简单配置,请求进入后的运行流程如下:
frontend
监听 80 端口
请求被 frontend
转发到 backend
的 servers 中
请求进入运行在 127.0.0.1:8000 的 server1 中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # Simple configuration for an HTTP proxy listening on port 80 on all # interfaces and forwarding requests to a single backend "servers" with a # single server "server1" listening on 127.0.0.1:8000 global daemon maxconn 256 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http-in bind *:80 default_backend servers backend servers server server1 127.0.0.1:8000 maxconn 32
listen 的配置示例及运行流程 使用单个 listen
块定义的相同配置。更精简但不那么富有表现力,尤其是在HTTP模式下。
请求进入 80 端口
转发入运行在 127.0.0.1:8000 的 server1 中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # The same configuration defined with a single listen block. Shorter but # less expressive, especially in HTTP mode. global daemon maxconn 256 defaults mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms listen http-in bind *:80 server server1 127.0.0.1:8000 maxconn 32
相关命令 1 2 3 4 5 6 7 8 9 10 # 修改配置并重启 sudo vi /etc/haproxy/haproxy.cfg haproxy -c -f /etc/haproxy/haproxy.cfg sudo service haproxy restart # 设置权重 echo 'set weight read_only-back/slave1 0' | sudo socat stdio /run/haproxy/admin.sock echo 'set server read_only-back/slave1 agent up' | sudo socat stdio /run/haproxy/admin.sock
了解更多 HAProxy 各版本官方文档