Я знаю что ты можешь использовать nginx HttpGzipModule сжать ответы. Можете ли вы также использовать его, чтобы позволить nginx обрабатывать сжатие gzip Запросы, то есть с заголовком запроса: Content-Encoding: gzip
?
Примечание: Apache с помощью mod_deflate
может обрабатывать сжатые с помощью gzip запросы с помощью директивы SetInputFilter DEFLATE
.
Я только что попробовал это на сервере nginx, который у меня есть перед серверной частью Apache.
curl -H "Content-Encoding: gzip" --include -d @testfile.gz http://example.com/upload_file.php
curl добавлен автоматически:
Expect: 100-continue
к заголовкам запроса.
nginx отправил обратно
HTTP/1.1 100 Continue
response и curl с последующей отправкой сжатых данных. nginx передал все обратно в Apache, все еще сжатый и с Content-Encoding:
заголовок цел.
Если бы я не добавил Content-Encoding: gzip
заголовок с curl, я не получил ответа HTTP 100, но все остальное было таким же.
Это еще не ответ на ваш вопрос, но подразумевает, что nginx либо не обрабатывает это по умолчанию, либо не распаковывает тело запроса при проксировании. Меня интересует ответ на этот вопрос, поэтому я посмотрю, смогу ли я опробовать его на сервере nginx без прокси чуть позже.
Предположительно, вы могли бы решить проблему с пропускной способностью, проксируя эти запросы на бэкэнд Apache с помощью mod_deflate, но это игнорирует причину, по которой вы изначально выбрали nginx.
Только что нашел эту статью: Как заставить Nginx распаковать gzip-запрос
Выглядит неплохо, но я еще не пробовал. Надеюсь, поможет.
Я нашел хорошие шаги в цифровом океане для Ubuntu 14.04
Это хорошо