March 25, 2013 05:22AM
Добрый день.

Подскажите, поддерживает ли 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@jabber.ufanet.ru
wave: ufaweb@googlewave.com
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@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Serafim March 25, 2013 05:22AM

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

Валентин Бартенев March 25, 2013 06:16AM

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

ciklop March 27, 2013 06:09AM

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

Валентин Бартенев March 27, 2013 10:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 336
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready