Tôi cần tải cân bằng giữa nhiều máy chủ đang chạy với các tên máy chủ khác nhau. Tôi không thể thiết lập cùng một máy chủ ảo trên mỗi máy chủ.
Có thể chỉ có một cấu hình nghe với nhiều máy chủ và làm cho Kiểm tra sức khỏe áp dụng http-send-name-header Host
chỉ thị? Tôi đang sử dụng HAProxy 1.5.
Tôi đã nghĩ ra haproxy.cfg này, như bạn thấy, tôi phải đặt một tên máy chủ khác nhau cho mỗi lần kiểm tra sức khỏe vì kiểm tra sức khỏe bỏ qua http-send-name-header Host
. Tôi sẽ thích sử dụng các biến hoặc các phương pháp khác và giữ cho mọi thứ ngắn gọn hơn.
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 10000
timeout server 10000
stats enable
stats uri /haproxy?stats
stats refresh 5s
balance roundrobin
option httpclose
listen inbound :80
option httpchk HEAD / HTTP/1.1\r\n
server instance1 127.0.0.101 check inter 3000 fall 1 rise 1
server instance2 127.0.0.102 check inter 3000 fall 1 rise 1
listen instance1 127.0.0.101:80
option forwardfor
http-send-name-header Host
option httpchk HEAD / HTTP/1.1\r\nHost:\ www.example.com
server www.example.com www.example.com:80 check inter 5000 fall 3 rise 2
listen instance2 127.0.0.102:80
option forwardfor
http-send-name-header Host
option httpchk HEAD / HTTP/1.1\r\nHost:\ www.bing.com
server www.bing.com www.bing.com:80 check inter 5000 fall 3 rise 2
example.heroku.com