【问题标题】:Load balancer for php applicationphp 应用程序的负载均衡器
【发布时间】:2013-09-14 16:43:28
【问题描述】:

如果您有时间,请询问有关负载平衡器的问题。

所以我使用 AWS 已经有一段时间了。超级基本的实例,当我需要做某事时使用它们来完成一些任务。

我现在有一个需要负载平衡的任务。虽然它不是公共服务。我不想在与我的网站相同的服务器上运行这几乎是一项巨大的 cron 工作。

我设置了一个 AWS 负载均衡器,但它并没有达到我的预期。 它卡在一台服务器上,根本没有负载平衡。我已经阅读了它为什么这样做,这一切都很好,但我需要它成为一个严肃的循环负载平衡器。

编辑:

我已经在不同的区域设置了实例,但是无论我向 ELB 添加多少实例,它都只使用一个。如果我取消该实例,它会切换到另一个实例,所以我知道它正在工作。但我真的希望它在任何情况下都始终使用不同的。

我知道还有其他选择。这是我的问题: 自定义 php 负载平衡器现在是一个不错的选择吗? IE:有一个服务器列表,并让 php 随机选择一个 ec2 实例。根本无法扩展,但至少我可以在 2 分钟内完成设置,并且现在可以工作。

我是否应该花时间了解 HAProxy 的工作原理,并设置它来代替 AWS ELB?

我做错了吗,AWS 的 ELB 确实进行了循环。我只是配置有问题?

编辑:

结构: 1) Web 服务器找到要执行的任务。

2) 如果它太大,它会将其发送到 AWS(负载均衡器)。

3) 在 EC2 上完成工作

4) 通过 curl 向 API 报告

5) 冲洗并重复

一切都很好。但是因为连接总是来自我的服务器(一个 IP),所以它会粘在一台 EC2 机器上。

【问题讨论】:

  • 您使用的是 ELB 的 DNS 还是您获得的 IP 地址之一?
  • ELB的A记录
  • ELB 后面有多少台服务器,它们是如何在可用区之间划分的?

标签: amazon-web-services load-balancing


【解决方案1】:

ELB 适用于负载逐渐增加的网站。如果您预计负载会出现不寻常的突然增加,您可以要求 AWS 为您预热。

我可以告诉你我在不同的场景中使用了 ELB,它对我来说总是很有效。由于您没有提供太多有关您的架构的信息,我敢打赌 ELB 适合您,并且所有连接都只访问一台服务器的情况,我会问您:

1) 您是否检查了 ELB 以查看其背后有多少实例? 2)您在ELB后面的实例都还活着吗? 3) 您是否通过 ELB DNS 访问您的应用程序?

无论如何,我摘录了一篇出色的文章,该文章很好地比较了 ELB 和 HAProxy。 http://harish11g.blogspot.com.br/2012/11/amazon-elb-vs-haproxy-ec2-analysis.html

ELB 提供基于 EC2 的 Round Robin 和 Session Sticky 算法 实例健康状况。 HAProxy 提供了多种算法,例如 Round Robin、Static-RR、Least connection、source、uri、url_param等

希望这会有所帮助。

【讨论】:

  • 优秀的文章,谢谢。我关注了this article 如何对两个 EC2 进行负载平衡,在底部,他让负载平衡器在两个 EC2 之间来回切换。我完全按照它,并使用ELB的A记录连接,它总是粘在一个EC2上。我的 ELB 后面有两个健康、运行和活跃的实例。确认是因为我在 Putty 中打开并正在查看 access_log (/var/log/httpd)。我应该注意,连接总是来自我的服务器,所以 1 个 IP 地址
【解决方案2】:

这一点让许多使用 Amazon ELB 的用户感到意外。亚马逊 当传入流量来自 单个或特定 IP 范围,它不能有效地进行循环 并坚持要求。 Amazon ELB 开始偏爱单个 EC2 或 多可用区部署中的单可用区中的 EC2 在这种情况下。例如:如果您有应用程序 A(客户公司)和应用程序B,部署应用程序B 在带有 ELB 前端的 AWS 基础设施内部。所有的交通 从应用程序 A(单个主机)生成的发送到应用程序 B AWS,在这种情况下,应用程序 B 的 ELB 将不会有效地 Round 将流量控制在其下部署的 Web/App EC2 实例。这是 因为来自应用程序 A 的全部传入流量将来自 单一防火墙/ NAT 或特定 IP 范围服务器和 ELB 将启动 不均匀地将请求粘贴到单个 EC2 或单个 AZ 中的 EC2。 注意:用户通常在负载测试期间遇到这种情况,因此非常理想 从多个分布式代理负载测试 AWS Infra。

更多信息请参阅以下文章http://harish11g.blogspot.in/2012/07/aws-elastic-load-balancing-elb-amazon.html中的第 9 点

【讨论】:

    【解决方案3】:

    HAProxy 不难学习,而且非常轻巧且灵活。我实际上使用 HAProxy behind ELB 来实现两全其美 - ELB 面向 Internet 和解包 SSL 的硬化、托管、不干涉的可靠性,以及 HAProxy 的灵活配置,让我能够很好调整事情如何影响我的服务器。我从来没有丢失过一个 HAProxy 实例,但是我这样做了,ELB 只会让那个实例脱离轮换......正如我所看到的那样,当后端服务器都变得无法访问时,会发生这种情况(因为它的方式已配置)使 ELB 认为 HAProxy 不健康,但这是我的设置中的设计。

    【讨论】:

      猜你喜欢
      • 2018-02-26
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2021-12-07
      • 2012-01-11
      • 2017-09-27
      • 2020-02-25
      相关资源
      最近更新 更多