Kubernetes和Nginx入口控制器出现413错误 [英] 413 error with Kubernetes and Nginx ingress controller

查看:139
本文介绍了Kubernetes和Nginx入口控制器出现413错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试更改client_max_body_size值,因此我的nginx入口不会返回413错误.

I'm trying to change the client_max_body_size value, so my nginx ingress will not return 413 error.

我已经测试了几种解决方案.
这是我的测试配置图:

I've tested few solutions.
Here is my test config map:

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.conf中的值是相同的:

These changes has no effect at all, after loading it, in the nginx controller log I can see the information about reloading config map, but the values in nginx.conf are the same:

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-controller配置使用以下图像:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

My nginx-controller config uses this image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

如何强制Nginx更改值?我需要为所有入口全局更改它.

How can I force the nginx to change the value? I need to change it globally, for all my ingresses.

推荐答案

您可以使用

You can use the annotation nginx.ingress.kubernetes.io/proxy-body-size to set the max-body-size option right in your Ingress object instead of changing a base ConfigMap.

以下是用法示例:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-app
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
...

这篇关于Kubernetes和Nginx入口控制器出现413错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆