Ошибка "413 Request Entity Too Large", возникающая при отправке файлов через cURL, указывает на то, что сервер отклоняет запрос из-за превышения установленного лимита на размер тела запроса. Несмотря на то, что параметр `client_max_body_size` установлен в 100MB в файле конфигурации Nginx, есть несколько моментов, которые нам следует проверить для устранения проблемы.
1. **Перезапуск Nginx**: Убедитесь, что после внесения изменений в конфигурационный файл `nginx.conf` вы перезапустили Nginx, чтобы изменения вступили в силу. Вы можете сделать это с помощью команды:
```bash
sudo systemctl restart nginx
```
2. **Наследование параметров**: Проверьте, что параметр `client_max_body_size` не переопределяется в других конфигурационных файлах, таких как конфигурации `server` или `location`. Он может быть установлен в более низком значении в одной из этих секций. Используйте следующие команды для поиска:
```bash
grep -R "client_max_body_size" /etc/nginx/
```
3. **Проверка ошибок Nginx**: Просмотрите логи ошибок Nginx для получения дополнительной информации о том, почему запрос отклоняется. Логи можно найти в стандартном месте `/var/log/nginx/error.log`.
4. **Размер загружаемого файла**: Убедитесь, что размер загружаемого файла действительно не превышает указанный лимит в `client_max_body_size`.
5. **Конфигурация PHP (если используется PHP)**: Если ваш сервер работает с PHP, также убедитесь, что в настройках PHP (`php.ini`) параметры `upload_max_filesize` и `post_max_size` установлены в значения, которые позволяют загружать файлы нужного размера. Эти параметры должны быть больше, чем размер загружаемого файла.
Пример конфигурации:
```ini
upload_max_filesize = 10M
post_max_size = 10M
```
6. **Кэширование**: Если вы используете кэширование (например, `proxy_cache` или `fastcgi_cache`), возможно, стоит очистить кэш или временно отключить его для отладки.
7. **Системные ограничения**: Иногда могут действовать системные ограничения, такие как лимиты на размер сообщения в сетевых интерфейсах. Убедитесь, что они соответствуют требованиям.
Если вы проверили все вышеперечисленное и проблема все еще остается, попробуйте протестировать минимальный запрос на загрузку файла через cURL, чтобы исключить другие возможные проблемы. Сначала проверьте, работает ли cURL для файлов меньшего размера, а затем постепенно увеличивайте его, пока не достигнете предела, чтобы удостовериться, что проблема в Nginx, а не в самом запросе.