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
|