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