ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Transfer-Encoding: chunked для статических файлов


  • To: nginx-ru@xxxxxxxxx
  • Subject: Transfer-Encoding: chunked для статических файлов
  • From: Руслан Шарипов <ufaweb@xxxxxxxxx>
  • Date: Mon, 25 Mar 2013 15:21:28 +0600
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:from:date:message-id:subject:to :content-type:content-transfer-encoding; bh=e2dqaqdP8+rRyXoSjM5ZRHTpoSqktY5RblObX8MdU4Q=; b=gmT7gbTH6I+P/+Ze2Fg8yIM4oqLt6Q4aaao2Hv2EK5eDvL6zuRYodrASzeZ3WfpKO8 vezT7AC/QkRiTz8FuRnLO9iaBknBZ8P96GKMoQd/frOVpqaGYHXi7kj60v/pup1N3ZfL 6zAf7BruyGI32zOMZHdeSWNdaTZqGcgZGp1ELEk7JwEugCoHXN6w42NTXftrt0JJG4ur 6yzZp3JDSTUOt6Hk6ZQeXHorqIE3rLQBAG0cXJxp3FPWwFWUg6Hkqczd4A/S8Gm11pdY 5AN1DfqvvIa5U74QF1CJvjTJt3iDEkhLtn3XRG8CJ/ZjKAosGQ1ZjwVhmPK5/TuGLdTm Ak2g==

Добрый день.

Подскажите, поддерживает ли nginx возможность отдавать статические
файлы чанками?

Если запросить ресурс, который nginx будет проксировать, то
Transfer-Encoding: chunked включается. Например, запрашиваем ресурс,
который формируется wsgi-бэкендом: curl
http://server.example.com/api/v1/file/foobar/status, то ответ будет
таким:

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Mon, 25 Mar 2013 09:09:08 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: close

d
{"status": 0}
0

Т.е. все хорошо, ответ пришел чанками.

Но если запросить ресурс, который представляет из себя просто
статичный файл и обрабатывается вот таким location'ом:

 location /files/ {
  root /home/uploader/receiver;
  chunked_transfer_encoding on;
 }

То имеем такую картину:

Запрос: curl http://server.example.com/files/foobar
Ответ:

HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Mon, 25 Mar 2013 09:05:02 GMT
Content-Type: application/octet-stream
Content-Length: 819098
Last-Modified: Mon, 25 Mar 2013 08:38:21 GMT
Connection: keep-alive
Accept-Ranges: bytes

...data

Т.е. nginx отдает файл "спрошняком", не деля его на чанки. Можно ли
добиться того, чтобы nginx разбивал на чанки не только ответы от
бэкендов, но и статические файлы? (здесь же возникает вопрос, как
настаивать размер чанка)

Спасибо.

p.s. возможно задачу можно решить иначе, поэтому также поясню зачем
мне это надо. Если верить некому Бену
(https://groups.google.com/forum/?fromgroups=#!topic/python-tornado/kvZma1JY1hc),
то штатный http-клиент из tornado позволяет использовать
streaming_callback
(http://www.tornadoweb.org/en/stable/httpclient.html) только в том
случае, если ответ от сервера не "сплошной", а разбит на чанки.

--
С уважением, Шарипов Руслан.
Руководитель отдела разработки и сопровождения программного
обеспечения ОАО "Уфанет".

Контактная информация:
google+: http://gplus.to/ruslan
jid: serafim@xxxxxxxxxxxxxxxx
wave: ufaweb@xxxxxxxxxxxxxx
skype: ufaweb
phone: +7(917)4775460
vkontakte: http://vkontakte.ru/ufaweb
myspace: http://www.myspace.com/ufaweb
facebook: http://facebook.com/sharipov
linkedin: http://www.linkedin.com/in/ufaweb
twitter: http://twitter.com/ufaweb
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.