nginx client_max_body_size не имеет никакого эффекта?
Я знаю, что об этом уже спрашивали несколько раз, но я просто не могу заставить его работать в моей конфигурации. Я получаю сообщение об ошибке 413 при попытке загрузить файлы, размер которых превышает значение nginx по умолчанию client_max_body_size
с 1 МБ.
Это мои конфиги:
nginx.conf:
http {
client_max_body_size 500M;
limit_req_status 429;
limit_conn_status 429;
limit_req_zone $binary_remote_addr zone=worktoday:40m rate=10r/s;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
mysite.com:
server {
client_max_body_size 500M;
listen 80;
location / {
client_max_body_size 500M;
proxy_pass http://backend;
proxy_set_header Host $host;
}
}
upstream backend {
client_max_body_size 500M;
least_conn;
server 172.16.10.10;
server 172.16.10.12;
}
Я перепробовал все комбинации, ставя client_max_body_size
во всех местах (как сейчас), только в некоторых, установив его на 0 (чтобы отключить любой лимит) и т. д.
Я отчаянно пытаюсь решить это.
За nginx находится приложение фляги, работающее с gunicorn. Я уже попробовал приложение само по себе (без nginx спереди), и оно работает.
Я действительно ценю любую помощь здесь, спасибо.
1 ответ
Хорошо, так получается, что вчера, когда я задал этот вопрос, я полностью сгорел и забыл нашу конфигурацию развертывания.
Наш главный сервер действует как балансировщик нагрузки, а позади у нас есть два других сервера, которые также имеют nginx. Я забыл о существовании двух других nginx, и они были теми, кто отклонял запросы.
настройка client_max_body_size
на тех двоих наконец-то исправили мою проблему.
Совет: иногда лучше ложиться спать и возвращаться свежим, чтобы решить ваши проблемы.