Kubernetes和Nginx ingress 报413错误

识趣 发表于: 2022-01-07   最后更新时间: 2023-12-06 10:55:28   1,289 游览

我想改变client_max_body_size的值,这样我的nginx ingress就不会返回413错误。

我已经测试了几个解决方案。

这里是我的测试的configMap:

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控制器日志中我可以看到关于重新加载config map的信息,但nginx.conf中的值是一样的。

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配置使用这个:
image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

我怎样才能强制nginx改变这个值?并在全局范围内改变它,为我所有的ingress。

发表于 2022-01-07

可以使用 nginx.ingress.kubernetes.io/proxy-body-size 在 Ingress 对象中设置 max-body-size 选项,而不是更改基本 ConfigMap。

下面是使用的例子:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-app
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "50m"
...
识趣 -> 半兽人 2年前

谢谢。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题