поддерживает ли nginx сжатие запроса в восходящий поток?
доза nginx supprt это ? Whoul вы, пожалуйста, покажите мне некоторые конфигурации его?
[Client] [Nginx Reverse Proxy] [BackEnd]
| [Raw Post] | [gzip encoded request] |
|--------------------> | ----------------------------->|
| | |
| [Raw Response] | [gzip encoded response] |
| <------------------ | <-----------------------------|
| | |
3 ответов
видимо, есть какой-то способ сделать это. Nginx имеет gunzip
модуль, который gzip распаковывает ответы:
модуль ngx_http_gunzip_module-это фильтр, который распаковывает ответы с "Content-Encoding: gzip" для клиентов, которые не поддержка метода кодирования "gzip". Модуль будет полезен, когда он есть желательно хранить сжатые данные, экономить место и уменьшать ввод-вывод затраты.
этот модуль не встроен по умолчанию, он должен быть включен с --с параметром конфигурации-http_gunzip_module.
источник:http://nginx.org/en/docs/http/ngx_http_gunzip_module.html
затем вы можете использовать его как:
gunzip on;
надеюсь, что это сработает для вас.
Также см. Этот вопрос SO: есть ли какие-то модули распаковки в nginx?
полный и правильный ответ заключается в том, что nginx can сделать это, но с парой оговорок. Чтобы предоставить несжатый ответ пограничному клиенту (ПК пользователя), необходимо скомпилировать nginx с помощью gunzip
module-который не построен / включен по умолчанию. Это противоположность модулю gzip и позволяет nginx распаковывать уже сжатые ресурсы, найденные на диске или полученные с бэкэнд-сервера.
поэтому при компиляции nginx включите этот:
--with-http_gunzip_module
и в nginx.conf
, у вас будет такой блок для описания запросов, которые будут получены с бэкэнд-сервера:
location @backend {
...
proxy_pass http://10.0.0.xxx;
gunzip on;
proxy_set_header Accept-Encoding "gzip";
}
вы можете отключить сжатие gzip в nginx, установив gzip
директива off
в своем nginx.conf
:
gzip off
кроме того, вы можете включить сжатие gzip только для проксированных запросов:
gzip_proxied off
Nginx имеет отличную Вики, где вся эта информация четко объясняется: http://wiki.nginx.org/HttpGzipModule
о проксировании nginx: также четко описано в nginx wiki:
пример:
location / { proxy_pass http://localhost:8000; proxy_set_header X-Real-IP $remote_addr; }
http://wiki.nginx.org/HttpProxyModule
существует много разных способов настроить прокси-сервер, поэтому вы должны погрузиться и посмотреть, что вам нужно, на это нет "одного" ответа.