Apache LimitRequestBody не действует при использовании ProxyPass
Я разрабатываю приложение на Django и использую gunicorn и apache для его развертывания. Приложение позволяет отправлять изображения в виде многокомпонентной формы.
Я создал механизм ограничения размера изображения и размеров на уровне Django. Я хотел бы ограничить размер файлов, которые передаются в Django на уровне Apache.
Изображения хранятся и извлекаются с помощью Django, поэтому apache не обслуживает и не хранит эти загруженные изображения.
Вот конфигурация apache:
<VirtualHost *:443>
ServerName myserver.com
ServerAdmin email@example.com
# limit size of the body to 10mb
LimitRequestBody 10485760
Alias "/static" "/path/to/static/"
<Directory /path/to/static/>
Require all granted
</Directory>
ProxyPass /static !
# set this header to allow gunicorn to know if request is https or not
RequestHeader set X_FORWARDED_PROTO 'https' env=HTTPS
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8500/
ProxyPassReverse / http://127.0.0.1:8500/
SSLEngine on
SSLCertificateFile /path/to/certificate.pem
SSLCertificateKeyFile /path/to/privatekey.pem
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{ms}T" combined_with_time
CustomLog ${APACHE_LOG_DIR}/path/to/logs/access.log combined_with_time
ErrorLog ${APACHE_LOG_DIR}/path/to/logs/error.log
</VirtualHost>
При предоставленной конфигурации apache я ожидал, что при загрузке файла размером более 10мб (я использую файл размером около 200мб для тестирования) apache вернет сообщение 413 Request Entity Too Large. Но файл попадает на мой сервер по адресу http://127.0.0.1:8500/, потому что Django обрабатывает ответ.
Насколько я понимаю, в документации https://httpd.apache.org/docs/2.4/mod/core.html#limitrequestbody ничего не говорится о файлах, поэтому я предположил, что это ограничение будет влиять на загрузку файлов.
В этом сообщении https://stackoverflow.com/questions/16439722/apache-limitrequestbody-no-effect-on-ssl-binary-data говорится, что LimitRequestBody не применяется к проксированным запросам в версии 2.2, но это ограничение было снято в версии apache 2.4, которую я использую.