我想创建 2 台服务器(ubuntu)和一个控制节点。我还想在 2 台服务器上部署一个网站。每当任何用户尝试访问网站时,请求都必须转发到控制节点,并根据 2 台服务器上的负载(CPU 使用率、内存、用户数量)重定向请求。你能指导我如何做到这一点吗?
答案1
你正在寻找的基本上是喜欢haproxy。但 haproxy 不会根据 CPU 使用率或内存进行平衡。它会“限制”到给定后端的连接量。
如果您可以使其在没有基于 CPU/mem 的检查的情况下工作,那么这就是您需要的:
backend worker_backend
balance roundrobin
option httplog
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
default-server inter 10s fall 2 rise 3
option httpchk GET /ping HTTP/1.1\r\nHost:\ myservice.com
server back1 10.255.255.253:443 check weight 1 maxconn 4096 cookie check ssl verify none
server back2 10.255.255.254:443 check weight 1 maxconn 4096 cookie check ssl verify none
frontend worker
bind 10.255.253.204:80
redirect scheme https code 301 if !{ ssl_fc }
bind 10.255.253.204:443 ssl crt /etc/haproxy/server.pem
default_backend worker_backend