Как лучше реализовать функциональность bigpipe

Xasima xasima на gmail.com
Вт Дек 13 16:26:41 UTC 2011


Добрый день.

Хочу поинтересоваться, какие существующие модули можно использовать (стоит
посмотреть как пример) для разработки следующего функционала:

по приходящему запросу вида url?pipe=a.js,b.js,c.json&separator=xxx nginx
должен отдать данные {a.js, b.js, c.json} друг за другом через keep/alive
соединение, разделяя их c помощью xxxx,  правильно при этом высчитывая http
chunk length и помещая нужный content-type?

Сами ресурсы также отдаются (проксируются) через nginx, например, из
файловой системы, memcache, бэкенда.

HTTP/1.1 200 OK
Content-Type: multipart/mixed; boundary=xxx
Transfer-Encoding: chunked

--xxx
Content-Type: application/x-javascript
Content-Length: 123
{ ... a.js ... }

--xxx
Content-Type: application/x-javascript
Content-Length: 123
{ ... b.js ... }

--xxx
Content-Type: application/json
Content-Length: 123
{ ... c.json .. }

Connection: close

Насколько я понимаю, примеры  похожей функциональности есть  на node.js /
java jetty continuation.  Однако кажется, что такую отдачу контента
(особенно закешированного или находящегося на файловой системе) будет
выгоднее осуществлять через nginx и использовать специализированные бэкенды
лишь для изменяемых данных.

Использовать вместо такой динамической отдачи подготовленные
(скомпилированные) наборы js скриптов тоже не хочется, потому как в общем
случае набор параметров  url?pipe=a.js,е.js, g.js динамичен и определяется
"деревом зависимостей" js модуля (который в заданный момент пользователь
"запросил" нажав на какую-то кнопку с редким функционалом на
пользовательском интерфейсе) и наличием уже загруженных подобным образом
скриптов.
-- 
Best regards,
     ~ Xasima ~
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20111213/28da4be2/attachment.html>


Подробная информация о списке рассылки nginx-ru