繁体   English   中英

Nginx-Ingress控制器后面的Nginx服务器

[英]Nginx server behind Nginx-Ingress controller

我们决定将我们的应用程序从Service:LoadBalancer迁移到Ingress,据我所知,我选择了Nginx Ingress Controller ,因为它是Kubernetes世界上最受欢迎的控制器之一

以前,我们的Nginx => Uwsgi组合位于ELB后面。 我们需要从源代码编译nginx,因为我们需要一些第三方模块和Lua支持。

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

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

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

删除Nginx Server是否是一个好习惯,因此Ingress Controller可以同时充当服务器和负载平衡器? 那我们使用的第三方模块呢?

  1. 原则上,在代理链中具有2个或更多nginx没什么错,除了在问题中和下文中提到的那样,额外的复杂性。
  2. 要在多个代理之间保持一致的配置,特别是要让上游配置渗入入口,是很痛苦的。 当同一个入口为多个具有不同流量需求的上游服务时,情况可能会变得非常复杂。 但这通常是不可避免的。
  3. 每个跃点都有自己独特的超时和重试配置,并且管理它们可能很复杂,尤其是上游有重试时的下游超时。 一个人可能会遇到非常奇怪的失败模式。
  4. 将应用程序与入口控制器捆绑在一起不是一个好主意。 Ingress旨在为群集外流量提供一个稳定的入口点,并将该流量分配给群集中的多个上游应用程序。 如果只有一个上游应用程序,则实际上不需要入口,因此根据情况,最好使用NodePort或LoadBalancer将其作为服务公开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM