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

库伯内特斯和Nginx入口控制器413错误

於彬
2023-03-14

我试图更改client\u max\u body\u size值,因此我的nginx入口不会返回413错误。

我测试了一些解决方案
这是我的测试配置图:

kind: ConfigMap
apiVersion: v1
data:
  proxy-connect-timeout: "15"
  proxy-read-timeout: "600"
  proxy-send-timeout: "600"
  proxy-body-size: "8m"
  hsts-include-subdomains: "false"
  body-size: "64m"
  server-name-hash-bucket-size: "256"
  client-max-body-size: "50m"
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app: ingress-nginx

这些更改根本没有效果,加载后,在nginx控制器日志中,我可以看到有关重新加载配置映射的信息,但可以看到nginx中的值。形态相同:

root@nginx-ingress-controller-95db685f5-b5s6s:/# cat /etc/nginx/nginx.conf | grep client_max                                                                                                       
                        client_max_body_size                    "8m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";
                        client_max_body_size                    "1m";

我的nginx控制器配置使用以下图像:quay.io/kubernetes-ingres-controller/nginx-ingres-controller:0.13.0

如何强制nginx更改值?我需要在全球范围内改变这一点,因为我的所有进入。

共有3个答案

龙珂
2023-03-14

更新:

我也遇到了同样的问题,没有解决办法。在阅读了无数的博客和文档后,我发现它们都有相同的建议解决方案,它们改变了命名约定。

它不再用“代理身体大小”表示,或者这对我来说根本不适用。

下面的链接显示要使用的正确configmap变量是“client max body size”

https://docs.nginx.com/nginx-ingress-controller/configuration/global-configuration/configmap-resource/

印晋
2023-03-14

要全局设置,请使用此configmap。md文档可能会有所帮助。事实证明,要设置的变量是代理主体大小,而不是客户端最大主体大小。

部署helm图表时,可以设置--set-stringcontroller.config.proxy-body-size="4m"

祁承望
2023-03-14

您可以使用注释nginx.ingres.kubernetes。io/proxy body size(io/proxy body size)在Ingress对象中设置最大body size选项,而不是更改基本配置映射。

以下是用法示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-app
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
...
 类似资料:
  • 我在K8S集群中面临一个奇怪的问题 基本上我有两个应用程序: identity manager(基于WSO2,但该问题与WSO2无关) 将管理X509身份验证的外部SAML2 IDP 为了使用这个外部SAML2 IDP,我配置了WSO2 当我尝试通过X509登录时,WSO2显示登录页面,我单击智能卡,重定向到外部SAML IDP。 在这种情况下,nginx入口为我提供了502个坏网关。如果我复制U

  • 新来的。我想知道是否有人可以帮助我区分我可以用来识别入口控制器和通过YAML和服务识别入口的特征。我有一个预先存在的集群,我认为入口控制器可能是通过helm安装的,但我不确定。有没有办法了解helm在安装nginx ingress控制器时使用的yaml?

  • 我已经研究Kubernetes几个星期了,并使用kube lego NGINX示例(https://github.com/jetstack/kube-lego)已使用DigitalOcean上的Rancher成功地将服务部署到Kubernetes群集。 我已经部署了示例静态站点、Wordpress、Laravel、Craft CMS等。所有这些都使用自定义命名空间、部署、秘密、具有外部注册表的容器

  • 具体来说,当我按照谷歌网站上的指示在GKE上设置nginx ingress时,为什么最终会有两个外部IP地址? 这两个IP地址用于LoadBalancer类型的入口资源和服务资源: 以下是我的想法: 这基本上就是我链接到的教程页面上的图表。因此,我希望负载平衡器是L4类型的,并且有一个外部IP(并且不需要花费任何金钱来使用!)。我希望入口(尽管其名称)没有外部IP,因为我用注释标记了它 谷歌应该承

  • 我的公司有一个伪造的CA证书。实例com和一张伪造地图的唱片。实例com连接到我们的负载平衡器的IP 负载平衡器正在将流量转发到我们的Kubernetes群集。 在集群中,我部署了nginx ingress helm图表,在30200处公开了https节点端口 我根据上述证书创建了一个名为test secret的k8s TLS机密。 我部署了一个带有服务“test”的应用程序,并安装了以下入口:

  • 我使用的是Kubernetes引擎,我有多个nginx入口控制器,它们的公共IP一直在变化。 我不能在生产中使用它,因为这不是正确的行为。 这正常吗?有人能帮我吗?