我使用 haproxy 对多个虚拟机(Web 服务)进行负载均衡。每个虚拟机都有多个 IP 地址。
在 haproxy 上进行设置的最佳做法是什么?现在我的配置是虚拟机的每个IP在haproxy上都有一个条目“listen”,对应的两个真实服务器。
请问它是否可以像多个“监听”和只有两个后端服务器一样修改。因为所有“侦听 IP”仅转发到同一虚拟机。
global
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
stats socket /var/run/haproxy.stat mode 666
maxconn 4096
user haproxy
group haproxy
daemon
defaults
mode http
log global
log 127.0.0.1 local0 notice
option dontlognull
option redispatch
timeout connect 10000 # default 10 second time out if a backend is not foun
timeout client 300000
timeout server 300000
maxconn 60000
retries 3
listen stats
bind xx.xxx.xxx.xxx:8888
stats uri /
stats realm Haproxy\ Statistics
stats auth user:pass
stats refresh 20
listen server 66.xxx.xxx.36:80
mode http
balance roundrobin
cookie SERVERID insert nocache indirect
option http-server-close
option forwardfor
option httplog
server server1 66.xxx.xxx.66:80 cookie sv1 check inter 5s rise 2 fall 5
server server2 66.xxx.xxx.68:80 cookie sv2 check inter 5s rise 2 fall 5
listen app 66.xxx.xxx.36:80
mode http
balance roundrobin
cookie SERVERID insert nocache indirect
option http-server-close
option forwardfor
option httplog
server app1 66.xxx.xxx.66:80 cookie ap1 check inter 5s rise 2 fall 5
server app2 66.xxx.xxx.68:80 cookie ap2 check inter 5s rise 2 fall 5
Run Code Online (Sandbox Code Playgroud)
你可以做两件事。首先,您可以在“侦听”或“前端”部分中拥有任意数量的“绑定”行。因此,如果唯一改变的是 IP,那么这是最好的做法。其次,如果您有任何理由对每个 IP 应用不同的处理(例如:不同的 ACL 或重写规则),那么您应该使用“前端”+“后端”而不是“侦听”。“听”部分完全是前端加上后端,两者都在同一部分中。通过拥有多个前端,您可以定义您想要对每个 IP 地址进行何种类型的处理,并使它们都使用相同的后端(使用“default_backend”规则)。而你所有的服务器只会被放置在这个单一的后端,具有相同的 cookie 名称、相同的 LB 算法、相同的健康检查等......
希望这会有所帮助,威利
| 归档时间: |
|
| 查看次数: |
21331 次 |
| 最近记录: |