我需要一些信息。我一直在谷歌上寻找这个解决方案,但找不到。我正在尝试设置 HAProxy 来平衡一台服务器中的下载器,而不是像互联网上的配置那样将它们发送到其他服务器。我需要设置 haproxy,以便它将到达本地主机端口 80 的连接绑定到本地主机中的端口 8081、8082、8083。
我问的问题是,我是否需要为这些端口设置多个 nginx 配置?我可以使用 Thin 应用程序来设置 Thin 服务器吗?我很难理解如何做到这一点。有人能给我指出正确的方向吗?
答案1
好吧,您可以进行普通循环(连接 1 到后端 A,连接 2 到 B,连接 3 到 C,再次,连接 4 到后端 A,连接 5 到 B,...),加权循环负载平衡(有条件的循环),加权哈希负载平衡(每个连接都有一个唯一的哈希值,并且连接考虑哈希值以免丢失连接),...
您可以在这里找到更多信息:http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
但是,在同一系统的同一台服务器上进行负载平衡有很多缺点:如果系统出现故障,则一切都会故障,使用循环调度,您将失去连接的连续性(如果一个人来到您的网站,访问,关闭他的浏览器,然后再次访问,不确定是否是同一个后端会再次为他提供服务),...
您至少应该在同一台服务器上拥有不同的虚拟机,并尝试在每个虚拟机上拥有相同的负载。
执行您尝试执行的操作的唯一好理由确实是在进程之间进行故障转移,而不是负载平衡,因此如果一个进程崩溃,另一个进程可以执行相同的任务。但是,要做到这一点,您需要一个故障转移监视循环(您执行循环并监视每个后端的状态,一旦一个后端崩溃,您就将其从循环列表中删除),并且由于它是循环的,您会失去连接的连续性。