Sử dụng HAProxy, tôi đang cố gắng (TCP) cân bằng tải Rserve (một dịch vụ nghe trong TCP socket để gọi R script) chạy tại cổng 6311 trong 2 nút.HAProxy Loadbalancing TCP traffic
Dưới đây là tệp cấu hình của tôi. Khi tôi chạy HAProxy, nó không có vấn đề gì. Nhưng khi tôi kết nối với các nút cân bằng, nhận được lỗi dưới đây. Bất cứ điều gì sai với cấu hình?
Handshake failed: expected 32 bytes header, got -1
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode tcp
log global
option httplog
option dontlognull
option http-server-close
#option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen haproxy_rserve
bind *:81
mode tcp
option tcplog
timeout client 10800s
timeout server 10800s
balance leastconn
server rserve1 rserveHostName1:6311
server rserve2 rserveHostName2:6311
listen stats proxyHostName:8080
mode http
stats enable
stats realm Haproxy\ Statistics
stats uri /haproxy_stats
stats hide-version
stats auth admin:password
Cố gắng với dưới frontend-backend cách cân bằng là tốt. Cùng một kết quả.
frontend haproxy_rserve
bind *:81
mode tcp
option tcplog
timeout client 10800s
default_backend rserve
backend rserve
mode tcp
option tcplog
balance leastconn
timeout server 10800s
server rserve1 rserveHostName1:6311
server rserve2 rserveHostName2:6311
hi - điều này rất thú vị. tại sao bạn không dùng nginx? vì hầu hết chúng ta sử dụng nginx, sẽ rất tuyệt khi thấy một giải pháp ở đó. Do lưu ý rằng nginx hỗ trợ tcp (sử dụng luồng và/hoặc giao thức proxy) – Sandeep
@Sandeep không có lý do cụ thể để không sử dụng nginx. Tìm thấy haproxy là độc quyền cho proxy ngược lại và làm nó tốt trong nhiều thập kỷ và tôi sẽ không cần bất cứ điều gì khác mà nginx cung cấp (như máy chủ web). Vâng. chúng ta có thể sử dụng một phần proxy ngược lại. Nhưng đã ổn định với haproxy. – Anand
@Sandeep Đây là triển khai nginx của ví dụ cân bằng tải TCP. https://www.nginx.com/resources/admin-guide/tcp-load-balancing/ – Anand