Afinogen
@Afinogen
PHP разработчик

Почему не работает client_max_body_size в location?

Согласно мануалу https://nginx.org/ru/docs/http/ngx_http_core_modul...
client_max_body_size можно указывать в http, server, location.
Но у меня почему-то работает только в http и server, версия nginx 1.17.4
Почему игнорируется location? Мне нужно сделать чтобы админы могли грузить файлы 300-400 мб, а вот пользователи нет. Можно конечно сделать проверку на php, но зачем насиловать сервер если nginx сам может отрубить лишнее.
  • Вопрос задан
  • 2130 просмотров
Решения вопроса 1
@dodo512
server {
    client_max_body_size 32M;

    location /faq/upload {
        client_max_body_size 400M;
        try_files $uri @admin_upload;
    }
    
    location @admin_upload {
        rewrite ^ /index.php break;
        
        fastcgi_pass ... ;
        include fastcgi_params;
    }

    location ~ \.php$ {
        fastcgi_pass ... ;
        include fastcgi_params;
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alekciy
@alekciy
Вёбных дел мастер
А из чего следует, что не работает?
Кроме уровня самого nginx есть и бэкенд. И его настройки. Например в php есть две директивы: upload_max_filesize и post_max_size.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы