Kubernetes和Nginx入口控制器出现413错误

问题描述 投票:8回答:2

我正在尝试更改client_max_body_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.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配置使用这个图像:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.13.0

如何强制nginx更改值?对于我所有的进入,我需要在全局范围内进行更改。

nginx kubernetes
2个回答
19
投票

您可以使用annotation 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"
...

4
投票

要在全球范围内设置它,这个configmap.md文档可能会有所帮助。原来设置的变量是proxy-body-size,而不是client-max-body-size

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

© www.soinside.com 2019 - 2024. All rights reserved.