使用 Windows,我们可以通过安装 NLB 并选择我们想要在集群中的节点来为任意 IP 服务设置负载平衡。它会改变一些 MAC 地址,然后有算法来决定哪个节点处理传入的请求。
是否有与 Linux 相当的生产级?我不想要需要前端服务器物理地(网络方面)位于机器前面的东西(就像某些硬件 LB 那样,而 Linux 虚拟服务器那样,AFAIK)。我想要一些类似于 Microsoft 的 NLB 的东西——选择 N 个节点,它们都在同一个 IP 上侦听,并分配传入的请求。
我面临以下问题:服务器饱和,因为当前的负载平衡策略是基于客户端 IP 的。一些企业客户端从大型代理后面访问我们的服务器,因此所有客户端对我们的负载平衡器都具有相同的 IP。我认为我们正在使用一些硬件负载平衡设备(如有必要,可以进一步调查)。我们需要保持会话亲和性(站点是在 ASP 中构建的),因此所有具有相同 IP 的请求都会路由到同一个节点。
由于所有通信都通过 HTTPS,因此没有请求数据(如会话 ID)可用于平衡器作为客户端鉴别器。有没有办法使用除 IP 之外的其他一些数据来区分客户端并将客户端路由到不同的节点?
注意:我需要保持平衡器和节点之间的流量安全(加密)。
我主要是一名 Web 应用程序开发人员,我对缩放/可扩展性技术知之甚少。我的应用程序是用 Python 编写的,使用 Django;一个相当标准的设置。
我目前使用 Apache 2.2 作为我的网络服务器,而 MySQL 作为我的数据库服务器;两者都运行在同一个 VPS 上。
到目前为止,它基本上是一个原型,并且在任何给定时间只有 15-30 个并发用户;所以我没有问题,但现在由于我们将添加更多用户,我们将遇到性能问题。
所以我的问题是如何扩展我的网络应用程序?我目前的计划如下:
这听起来像一个可行的策略吗?请指导我在这里。
我对服务器配置和 Linux 很陌生,所以请耐心等待:
我有一个在 Ubuntu 10.04 LTS 上运行 LAMP 服务器的小型 EC2 实例。
如果需要,我完全不知道如何扩大规模以满足流量需求。我可以将服务器类型更改为大型吗?或者创建另一个实例并做一些负载平衡?我什至不知道如何开始那里。如果有人可以提供一些提示并为我指明正确的文档方向,我将永远感激不尽。谢谢!
我想升级我们的一台服务器,一台运行 VMware Server 2 的 8 核服务器。它运行的虚拟机主要是 Web、文件和电子邮件服务器;具体来说,它运行三个网络服务器、两个电子邮件/文件服务器和几个 Jabber/XMPP 服务器。
当我们最初设置这台机器时,我们有两个 Web 服务器配置了两个 vCPU。我们遇到了一些非常严重的性能问题。当时我们只运行了 3 个虚拟机,总共有 5 个 vCPU。我们还运行了VMware Server 1和一个RAID1。我们现在已经升级到 RAID10,我永远不会考虑任何更少的东西!:-)
新服务器上将安装 VMware ESXi 而不是 VMware Server。我们正在寻找另一款具有更快处理器的 8 核机器,或者 16 核或 32 核服务器。我想确保避免我们之前遇到的问题。
因为我之前在多个 vCPU 上遇到过此类问题,所以我的计划是用多个相同的 Web 服务器 VM (2 - 4) 替换主 Web 服务器 VM,每个 VM 都有一个 vCPU,从 NFS 共享提供内容,并将它们放在负载中- 平衡配置。所以我基本上会用至少 4:2 个小型网络服务器 VM、一个文件服务器 VM 和一个负载平衡 VM 替换一个 VM。我的计划是双重的:首先,我可以避免我之前看到的任何多个 vCPU 使用,其次,我可以生成新的 Web 服务器虚拟机来处理增加的负载。
请注意,我知道我没有获得负载平衡的所有好处,因为我仍然存在单点故障。
这是一个好的计划,还是没有必要?VMware ESXi 能否比三年前的VMware …
是否可以在一个后端检查两个条件?例子
backend web-static
option httpchk GET /path/alive.php HTTP/1.1\r\nHost:\ www1.domain.com
option httpchk GET /path2/alive.php HTTP/1.1\r\nHost:\ www1.domain.com
server appsrv1 192.168.1.10:80 check inter 3000 weight 1
Run Code Online (Sandbox Code Playgroud) 我已经通过 xinetd 使用 HAProxy设置了负载平衡 MySQL 从站。2 个负载均衡器共享一个由 Pacemaker 管理的虚拟 IP:
crm configure show:
node SVR120-27148.localdomain
node SVR255-53192.localdomain
primitive failover-ip ocf:heartbeat:IPaddr2 \
params ip="192.168.5.9" cidr_netmask="32" \
op monitor interval="5s" \
meta is-managed="true"
primitive haproxy ocf:heartbeat:haproxy \
params conffile="/etc/haproxy/haproxy.cfg" \
op monitor interval="30s" \
meta is-managed="true"
colocation haproxy-with-failover-ip inf: haproxy failover-ip
order haproxy-after-failover-ip inf: failover-ip haproxy
property $id="cib-bootstrap-options" \
dc-version="1.0.12-unknown" \
cluster-infrastructure="openais" \
no-quorum-policy="ignore" \
expected-quorum-votes="2" \
stonith-enabled="false" \
last-lrm-refresh="1342783084"
Run Code Online (Sandbox Code Playgroud)
/etc/haproxy/haproxy.cfg:
global
log 127.0.0.1 local1 debug …Run Code Online (Sandbox Code Playgroud) HAProxy 似乎并没有保持与服务器的连接平衡。
请记住这一点:
如图所示,服务器 C 和 D 的连接似乎比其他服务器多。由于这种额外的负载,它们会继续下降并自动重新启动。

我尝试阅读 HAproxy 官方文档并进行了一些谷歌搜索,但没有发现任何有用的信息。希望这里有人可以提供帮助。
几个问题:
为什么当配置说使用 roundrobin、服务器规格相同并且没有应用权重时会出现这种情况?
什么决定了“会话”列中的“最大”子列(表示 1970、1444 等的那个)。服务器 C、D、E 在 3K 范围内,其他 2 个在 2K 以下。为什么会有差异?
如何让这一切保持平衡?
有人可以解释每一列吗?我很惊讶 HAproxy 的官方文档并没有真正解释它。
我计划添加更多 Web 应用程序服务器以支持不断增加的客户端,部署 HAproxy 和 Keepalived 以实现负载平衡和高可用性。
我的服务器使用具有以下特点:
为此原因,
题
如果有超过 60,000 个客户端设备 X 连接到服务器,我的负载平衡器或路由器将耗尽 TCP 端口。例如,扩展 20,000 个用户的最佳方法是什么?
我的服务器在 Ubuntu 服务器上运行,使用 tomcat 和 Java Servlet。
我对 Amazon Web Services 比较陌生,我正在尝试了解 Elastic Load Balancing 如何在我的 wordpress 设置上下文中工作。此外,我想就拟议的基础设施提供一些建议。
我最初提议的基础设施如下:
EC2 我当前的 EC2 (t1.micro) 正在运行 LAMP 堆栈并配置为运行 wordpress。
我想用 m1.small 实例来负载平衡,运行 t1.micro 实例的克隆。
我目前的未知数如下:
这可能是一个非常愚蠢的问题,但我认为有些问题不会相关,因为基础设施正在引用一个数据库。
最后,有没有更好的方法来设置负载平衡的基础设施?即我是否应该考虑使用 Amazon S3 来存储我的所有文件并使用 Cloudfront 作为 CDN 以确保高效运行并解决任何 EBS 文件复制问题。
非常感谢任何帮助。
劳埃德
load-balancing ×10
haproxy ×3
scaling ×3
linux ×2
ubuntu ×2
amazon-ec2 ×1
apache-2.2 ×1
cluster ×1
connection ×1
https ×1
mysql ×1
nginx ×1
nlb ×1
smp ×1
tomcat ×1
vcpu ×1
vmware-esxi ×1
windows ×1
wordpress ×1