Моя настройка была:
php.ini
...
upload_max_filesize = 8M
...
nginx.conf
...
client_max_body_size 8m;
...
При загрузке nginx показывал ошибку 413.
Тогда у меня возникла идея: я не позволю nginx показать ошибку 413, для client_max_body_size установлено значение больше, чем upload_max_filesize, таким образом:
php.ini
...
upload_max_filesize = 8M
...
nginx.conf
...
client_max_body_size 80m;
...
Что случилось?
Когда вы загружаете меньше 80 МБ, nginx не отображает ошибку 413, но PHP отображает ошибку, если размер файла составляет до 8 МБ.
Это решило мою проблему, но если кто-то загрузит файл размером более 80 МБ, произойдет ошибка 413. Правило nginx.