Похоже, что nginx 0.8.35 может поддерживать кодирование передачи по частям :
Изменения в nginx 0.8.35 01 апреля 2010
*) Change: now the charset filter runs before the SSI filter. *) Feature: the "chunked_transfer_encoding" directive.
Это замечательно, потому что я пытаюсь передать push git изменения через обратный прокси-сервер nginx в процесс git-http-backend. Git HTTP использует преимущества кодирования передачи по частям для повышения эффективности на стороне клиента .
Тем не менее, я не могу заставить его работать. Я использую nginx 0.8.44 в Debian Lenny со следующим вызовом configure:
./configure \
--sbin-path=/usr/sbin \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--user=www-data \
--group=www-data \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-http_realip_module
И следующий файл conf:
server {
server_name example.com;
location / {
proxy_pass http://192.168.0.10;
include /etc/nginx/proxy.conf;
chunked_transfer_encoding on;
}
}
И моя proxy.conf
выглядит так:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100M;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
(Первоначально я отправил этот вопрос в Stack Overflow, но мне посоветовали, что он больше подходит для сбоя сервера)
Ответы:
Это старый вопрос, я знаю, но он возник в поисках проблемы (которую я провел днем, пытаясь решить). Комментарий Мартина Ф. дал мне достаточно подсказки, чтобы заставить его работать!
Хитрость заключается в том, чтобы установить
proxy_buffering off;
в вашем блоке местоположения. Предполагая, что ваш вышестоящий сервер отправляет обратно чанкованные ответы, это заставит nginx отправлять отдельные чанки обратно клиенту - даже распаковывать их на лету, если у вас включено сжатие вывода gzip.Обратите внимание, что отключение буферизации может иметь другие недостатки, поэтому не стоит слепо отключать буферизацию, не понимая, почему.
источник
Предлагаю отредактировать ваш вопрос для уточнения. Существует большая разница между частями запросов и частями ответов. Ответ Джона Далтона касается последнего. Git делает оба.
Nginx в настоящее время не поддерживает фрагментированные POST-запросы, и эта публикация показывается в результатах поиска по этой теме Частичные POST-запросы используются, когда вы не знаете заранее объем загружаемых данных и часто используются мобильными телефонами.
Единственное рабочее решение, которое я нашел, это:
http://wiki.nginx.org/HttpChunkinModule
К сожалению, требуется перекомпиляция nginx, поскольку nginx не поддерживает загружаемые модули.
источник
В моем случае ... я пробую много вещей и, наконец, нужно только добавить в конфигурацию
И это работает ...
источник
proxy_set_header Connection "";
... оригинальный ответ от -> forum.nginx.org/read.php?2,247883,247883#msg-247883Другие ответы были действительны, но это старый вопрос.
Кажется, что Chunked Transfers поддерживаются в nginx 1.3.9 [1], который был выпущен в середине 2013 года, я думаю.
[1] http://wiki.nginx.org/HttpChunkinModule
источник