gpt4 book ai didi

Nginx-Ingress Controller 后面的 Nginx 服务器

转载 作者:行者123 更新时间:2023-12-02 11:54:32 25 4
gpt4 key购买 nike

我们决定将我们的应用程序从 Service:LoadBalancer 转移到 Ingress,我选择了 Nginx 入口 Controller ,正如我所熟悉的那样,因为它是 Kubernetes 世界中最受欢迎的 Controller 之一

以前我们有支持 ELB 的 Nginx => Uwsgi 组合。我们从源代码编译 nginx,因为我们需要一些 3rd 方模块和 Lua 支持。

ELB => Nginx Server => UWSGI
ELB => Nginx Ingress (Load Balancer) => Nginx (Server) => UWSGI

我的问题是:代理链中有 2 个 nginx 可以吗?

我知道一个扮演LoadBalancer的角色,另一个是服务器本身。但对我来说,它带来了痛苦,比如如果我更改服务器 nginx.conf 中的一些选项,比如将客户端主体的大小增加到 8MB,我应该在 Nginx-Ingress 上做同样的事情。另外我想知道如何设置超时:因为在 ingress=>server 和 server=>uwsgi 之间存在超时,通常如何在请求到达应用程序之前有 3 个代理时调整性能?

删除 Nginx Server 是否是一种好习惯,因此 Ingress Controller 同时充当服务器和负载均衡器?我们使用的 3rd 方模块呢?

最佳答案

  • 在代理链中拥有 2 个或更多 nginx 原则上没有任何问题,除了在问题和下面提到的额外复杂性之外。
  • 跨多个代理保持一致的配置是一件痛苦的事,尤其是让上游配置流入入口。当同一个入口为多个具有不同流量需求的上游提供服务时,情况会变得非常复杂。但这通常是不可避免的。
  • 每个跃点都有自己独特的超时和重试配置,管理它们可能很复杂,尤其是上游有重试时的下游超时。最终可能会遇到非常奇怪的故障模式。
  • 将应用程序与入口 Controller 捆绑在一起并不是一个好主意。 Ingress 旨在为集群外流量提供一个稳定的集群入口点,并将该流量分配给集群中的多个上游应用程序。如果只有一个上游应用程序,则确实不需要入口,因此如果可能的话,最好将其公开为服务,使用 NodePort 或 LoadBalancer,具体取决于具体情况。
  • 关于Nginx-Ingress Controller 后面的 Nginx 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49426772/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com