如何在多个 ubuntu 服务器上平衡负载?

如何在多个 ubuntu 服务器上平衡负载?

我想创建 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

相关内容