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

时间:2019-03-19 12:04:43

标签: wordpress nginx kubernetes nginx-ingress eks

这是一个EKS集群,在这里我有一个ELB代理将Nginx控制器的流量转发到该集群中。 Nginx配置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窗格中的日志始终相同:

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并没有真正的经验,将对此表示欢迎。

2 个答案:

答案 0 :(得分:1)

在Ingres控制器中添加以下注释,以增加主体尺寸。

#include <iostream>
using namespace std;
int main()
{
    int i, x[5];
    float num;
    cout << "**PROGRAM TO CONVERT DECIMAL FRACTION INTO ITS EQUIVALENT BINARY**\n";
    cout << "Enter a fraction in between 0 to 1 for conversion: ";
    cin >> num;
    if (num>=0 && num<1)
    {
        i=1;
        while (i<=4)
        {
            num*=2;
            x[i]=num;
            num=num-x[i];
            i++;
        }

        cout << "The binary equivalent is 0.";
        for (i=1;i<=4;i++)
        {
            cout << x[i];
        }
        if (num>0)
                cout << "...";
    }
    else
    {
        cout << "The number entered is out of range.";
    }

    return 0;
}

答案 1 :(得分:0)

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

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

使用ConfigMap和注释的更多详细信息为here