Nginx Ingress 错误 413 请求实体过大

我使用 Helm Chart,使用 ingress-nginx。我曾经遇到这个问题,当我上传一个文件(50MB)时,我会收到错误 413 请求实体过大 nginx 的错误信息。

所以我在 values.yaml 文件中更改了 proxy-body-size 值为 150m,因此现在我应该可以上传我的文件了。但是现在我收到了“413 Request Entity Too Large openresty/1.13.6.2”的错误信息。 我检查了 ingress 控制器的 nginx.conf 文件,客户端最大体积的值已正确设置为 150m。

经过一些研究,我发现 nginx 中的 lua 模块使用 openresty。 有人知道我怎么设置 openresty 的设置,或者我缺少什么参数吗?

我的当前配置如下:

values.yml:

ingress-nginx:
  defaultBackend:
    nodeSelector:
      beta.kubernetes.io/os: linux
  controller:
    replicaCount: 2
    resources:
      requests:
        cpu: 1
        memory: 4Gi
      limits:
        cpu: 2
        memory: 7Gi
    autoscaling:
      enabled: true
      minReplicas: 2
      maxReplicas: 10
      targetCPUUtilizationPercentage: 90
      targetMemoryUtilizationPercentage: 90
    ingressClassResource:
      name: nginx
      controllerValue: "k8s.io/nginx"
    nodeSelector:
      beta.kubernetes.io/os: linux
    admissionWebhooks:
      enabled: false
      patch:
        nodeSelector:
          beta.kubernetes.io/os: linux
    extraArgs:
      ingress-class: "nginx"
    config:
      proxy-buffer-size: "16k"
      proxy-body-size: "150m"
      client-body-buffer-size: "128k"
      large-client-header-buffers: "4 32k"
      ssl-redirect: "false"
      use-forwarded-headers: "true"
      compute-full-forwarded-for: "true"
      use-proxy-protocol: "false"

ingress.yml:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  namespace: 名称空间名称
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-buffer-size: "128k"
    nginx.ingress.kubernetes.io/proxy-buffers-number: "8"
    nginx.ingress.kubernetes.io/client-body-buffer-size: "128k"
    nginx.ingress.kubernetes.io/proxy-body-size: "150m"
spec:
  tls:
    - hosts:
        - hostname
  rules:
    - host: hostname
      http:
        paths:
          - path: /assets/static/
            pathType: ImplementationSpecific
            backend:
              service:
                name: serv名称
                port:
                  number: 8080

原文链接 https://stackoverflow.com/questions/71295991

点赞
stackoverflow用户18160543
stackoverflow用户18160543

所以结果是,出现错误的应用程序,在其前面还有另一个反向代理(它使用 Lua 和 Openresty 进行 oauth 注册)。代理的 body-size 属性也需要提高。之后,文件上传就可以正常工作了。

2022-09-22 11:11:41