nginx-ingress 控制器 wordpress 大文件上传问题

nginx-ingress controller wordpress big files upload issue

这是一个 EKS 集群,其中我有一个 ELB 代理流量到集群中的 Nginx 控制器。 nginx-configuration ConfigMap定义如下:

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
data:
  use-proxy-protocol: "false"
  use-forwarded-headers: "true"

我的 Ingress 资源是这样的。

 apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: "nginx"
        ingress.kubernetes.io/ssl-redirect: "true"
        nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
        ingress.kubernetes.io/proxy-body-size: "50m"
        nginx.org/proxy-connect-timeout: "30s"
        nginx.org/proxy-read-timeout: "20s"
        nginx.org/client-max-body-size: "50m"
      name: wordpress
      namespace: test
    spec:
      rules:
        - host: test.mrcartr.nl
          http:
            paths:
              - backend:
                  serviceName:  wordpress-mrcartr
                  servicePort: 80
                path: /

使用上述配置,我无法上传大文件,即使在 .htaccess(后端)中增加了适当的限制。 实际上,我已经创建了一个并行环境来在没有 Nginx 入口的情况下对其进行测试并且它有效。我的意思是,如果我的流量从 ELB 转发到后端,一切正常。 可以肯定的是,它与入口控制器配置有关。然而,我已经测试了几个不同的配置,但我没能成功。 ngnix-controller pod 中的日志始终相同:

GET /wp-admin/admin-ajax.php?action=updraft_ajax&subaction=activejobs_list&nonce=7ddb774c57&downloaders= HTTP/1.1" 200 460 "https://test.mrcartr.nl/wp-admin/options-general.php?page=updraftplus&tab=backups" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"

我对 NGINX 没有真正的经验,欢迎任何帮助。

显然,罪魁祸首是 nginx.org/client-max-body-size: "50m"

如果请求中的大小超过配置值,则向客户端返回413(请求实体太大)错误。请注意,浏览器无法正确显示此错误。将大小设置为 0 会禁用客户端请求正文大小的检查 - nginx.org/client-max-body-size: "0"

使用 ConfigMap 和 Annotations 的更多详细信息here

将以下注释添加到您的 Ingres 控制器以增加主体尺寸。

nginx.ingress.kubernetes.io/proxy-body-size: 128m