当前位置: 首页 > 知识库问答 >
问题:

需要澄清nginx和负载平衡

傅振濂
2023-03-14

我现在正在阅读Instagram的设计,我发现了对他们负载平衡系统的这样一个描述。

每个对Instagram服务器的请求都要经过负载平衡机;我们曾经运行过2台nginx机器,并在它们之间进行DNS循环。这种方法的缺点是DNS更新所需的时间,以防其中一台机器需要取消使用。最近,我们开始使用Amazon的弹性负载平衡器,它后面有3个NGINX实例,可以进行交换(如果运行状况检查失败,它们会自动停止循环)。我们还在ELB级别终止SSL,这减少了nginx上的CPU负载。我们使用Amazon的Route53 for DNS,他们最近在AWS控制台中为DNS添加了一个非常好的GUI工具。

问题是。我说的对吗,现在他们有一个DNS服务器,它使用RR来决定发送请求的nginx服务器。每个nginx服务器都会将请求重新发送到集群

第二个问题是。nginx和负载平衡器的区别是什么。为什么我们不能使用nginx呢?

共有1个答案

呼延臻
2023-03-14

对于您的第一个问题,我相信答案似乎是Instagram现在使用Route53将DNS映射到弹性负载平衡器,这有两个功能:它将流量相当均匀地路由到三个NGINX负载平衡器,并为所有流量提供SSL。然后,NGINX服务器充当向下一层的内容/应用程序服务器的负载平衡器。使用ELB而不是循环DNS意味着他们可以添加/删除/更新连接到ELB的实例,而无需担心DNS更新或TTL。

至于第二个问题,您可以像HAproxy或其他服务一样轻松地使用NGINX来进行负载平衡。我确信Instagram之所以选择NGINX,部分原因在于它惊人的速度,而且它是异步的,“事件驱动的”,而不是像Apache2那样的线程。当设置正确时,这意味着在重载情况下可以减少头痛。

 类似资料:
  • 我认为用A*算法应该是SAEFG,但答案是SBEFG。现在我的教授是一个无所事事的人。有人能解释为什么是SBEFG吗?

  • 来自 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#poison 当 Blob 触发器函数失败时... “失败”是什么意思?编译失败?引发未处理的异常? 如果有一些不起作用的示例代码,那就太好了。所有示例代码都显示了工作状态,因此无法演示 Azure 函数中的故障模式。

  • 我们有申报单 其中backlog被标识为传入连接的最大队列长度。如果连接指示在队列已满时到达,则会拒绝连接。 假设积压设置为10。 这是否意味着服务器套接字将接受不超过10个客户端? 然后: 只有当时,积压数才会下降。这是正确的吗? 有没有办法知道一个套接字当前正在处理多少个打开的连接(换句话说,它离放弃并开始拒绝新连接有多近)

  • 我不确定负载平衡如何与入口一起工作<如果我理解正确,实际情况是这样的: 我看不到负载平衡是如何执行的<我画的上述方案有什么错<你能帮我纠正一下吗? 注意: -以下答案告诉我入口控制器本身属于“loadbalancer”类型:入口服务类型 -我使用kind ClusterIP,因为我不想将loadbalancer暴露给外部世界。以下文章不支持此声明,其中负载平衡器将由服务提供: https://me

  • 堆栈:Azure Kubernetes服务 NGINX Ingress Controller-https://github.com/Kubernetes/ingress-nginx AKS LoadBalancer Docker容器 我的目标是创建一个K8s集群,它将允许我在一个IP下使用多个POD,创建一个微服务架构。在使用了大量的教程和文档之后,我的EndGoal没有任何运气。我已经到了能够使

  • 需求:创建一个多租户应用程序,该应用程序应该根据请求中的租户id将每个租户的数据插入到各自的PDB中。换句话说,每个租户或客户在CDB中都有自己的PDB,所有PDB都有相同的模式,然后根据请求中的租户Id选择一个数据源,并将数据插入到该PDB中。 Stack-Spring boot 2.3.0.发行版,Oracle 18c,连接池-Oracle共享通用连接池 UCP连接: Spring数据源配置类