nginx-ingress контроллер WordPress проблема загрузки больших файлов

Это кластер 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 к Backend, все работает просто отлично. Наверняка это связано с конфигурацией входного контроллера. Тем не менее, я уже протестировал несколько различных конфигураций, и мне не удалось сделать эту работу. Лог в модуле 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, любая помощь с этим будет приветствоваться.

1 ответ

Решение

Видимо, виновник nginx.org/client-max-body-size: "50m"

Если размер в запросе превышает сконфигурированное значение, клиенту возвращается ошибка 413 (Request Entity Too Large). Помните, что браузеры не могут правильно отображать эту ошибку. Установка размера 0 отключает проверку размера тела клиентского запроса - nginx.org/client-max-body-size: "0"

Более подробная информация об использовании ConfigMap и аннотации здесь

Добавьте следующую аннотацию к своему контроллеру Ingres, чтобы увеличить размер тела.

nginx.ingress.kubernetes.io/proxy-body-size: 128m
Другие вопросы по тегам