Игнорируется client max body size в именованном location

yanda.a nginx-forum at nginx.us
Tue Jul 16 13:26:53 UTC 2013


Доброго времени суток!
Недавно столкнулись с проблемой настройки nginx. Суть в том, что при
попадании в именованный location не срабатывает параметр
client_max_body_size определенный в нем. Например, при следующей
конфигурации и попытке залить файл размером более 1 МБ по адресу
http://server/index.php мы сталкиваемся с ограничением на максимальный
размер файла (получаем 413), при этом, в именованном location явно указан
параметр, переопределяющий это стандартное значение.

location / {
    root /var/www/htdocs/;
    try_files $uri @proxy_upstream;
}

location @proxy_upstream {  
    proxy_pass         http://127.0.0.1:80;

    proxy_redirect     off;
    proxy_intercept_errors on;
            
    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Port $server_port;
            
    client_max_body_size       10m;
    client_body_buffer_size    128k;
}

Но, если перенести параметр client_max_body_size в location /, куда
изначально попадает запрос, то данный параметр работает нормально и файл
залить удается.

Параметры сборки nginx:
#nginx -V
nginx version: nginx/1.4.1
TLS SNI support enabled
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I
/usr/local/include' --with-ld-opt='-L /usr/local/lib'
--conf-path=/usr/local/etc/nginx/nginx.conf
--sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid
--error-log-path=/var/log/nginx-error.log --user=www --group=www
--with-debug --with-file-aio
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp
--http-log-path=/var/log/nginx-access.log --with-http_addition_module
--with-http_geoip_module --with-http_gzip_static_module
--with-http_image_filter_module --with-http_realip_module
--with-http_secure_link_module --with-http_stub_status_module --with-pcre
--with-http_ssl_module


Собственно вопрос, в чем может быть причина игнорирования
client_max_body_size в именованном location?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,240912,240912#msg-240912



Подробная информация о списке рассылки nginx-ru