【问题标题】:Nginx in front of AWS elastic load balancer?AWS弹性负载均衡器前的Nginx?
【发布时间】:2013-04-30 15:09:17
【问题描述】:

我们正在考虑在 AWS 上设置我们的应用程序。这将在 3 个负载平衡的 Web 服务器上运行。我们一直在研究如何防止 DDOS 攻击以及如何在维护期间提供静态页面,并且正在考虑使用 Nginx。所以设置将是弹性负载均衡器前面的 Nginx。

与我们的设置一样,当应用程序升级时,我们更新 Nginx 以提供静态维护页面,而一个全新的堆栈上线并带有自己的弹性负载均衡器,并切换到新的应用程序堆栈,我们将更新 Nginx配置指向新的弹性负载均衡器。

这有意义吗?我问的原因是我在网上找不到这种类型的设置。

谢谢,

科林。

【问题讨论】:

  • Nginx 负载平衡工具比任何类型的云提供商服务中的任何黑匣子都更实用。如果有自定义要求,值得尝试用 Nginx 完全替换 AWS ELB。

标签: nginx amazon-web-services


【解决方案1】:

弹性负载均衡器通过使用多个 IP 地址来工作。如果你这样做dig amazon.com,你可以看到它是如何以低 ttl 分布的。一旦你的 nginx-server 用完开放端口,它就会关闭。

然而,在您的应用服务器前使用平衡器是一个非常好的主意。这可以很好地与自动缩放组一起缩放。

当您进行转换时,只需降低您的 CNAME ttl 并将其指向一个新的负载均衡器。

【讨论】:

  • 感谢您的回复。但是弹性负载均衡器将如何处理 DDOS 攻击,只是横向扩展直到它结束呢?我们如何尝试和防止 DDOS 攻击?
  • 你不能。防止大规模攻击的唯一方法是直接与网络运营商合作,让他们进行大规模的网络隔离。
【解决方案2】:

我看到 zero 值在这条路径中- 放置单个 nginx 实例只会增加设置的复杂性,增加成本,最重要的是会引入新的单点故障和性能/延迟瓶颈(并使您的环境更容易受到 DDOS 攻击)。

AWS 基础设施是 100% 可编程的 - 了解如何以编程方式控制 ELB:如何在维护期间将流量定向到静态站点(可以是托管在您的一个实例上的 nginx),以及如何支持您的升级工作流程。

【讨论】:

  • 我不得不说,虽然我最终同意你的结论,但 Nginx 有一个非常好的 DDOS 速率限制器,而且(我听说)因为 ELB 有一点时间来应对流量高峰,它实际上会停止工作。尽管他的解决方案不好,但这个人正在尝试解决一个非常现实的问题。
  • 感谢您的回复,您认为 ELB 会处理可能的 DDOS 攻击,还是我们可以在设置中使用其他任何东西?
  • ELB 不会解决问题 - 可能不会“中断”,但会将问题传递给您的服务器(这会中断)。您应该查看专用的 DDOS 缓解服务。例如,Cloudflare.com 可以充当您的前端,而 Dome9.com 可以确保没有人通过它们并直接连接到您的服务器。 (顺便说一句,我是一个自豪的 dome9'er)
猜你喜欢
  • 1970-01-01
  • 2017-09-30
  • 2013-07-19
  • 2021-05-27
  • 2018-05-02
  • 2017-01-13
  • 2014-01-24
  • 2014-07-18
  • 2013-03-22
相关资源
最近更新 更多