Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Как лучше реализовать фун кциональность bigpipe
- To: nginx-ru@xxxxxxxxx
- Subject: Как лучше реализовать фун кциональность bigpipe
- From: Xasima <xasima@xxxxxxxxx>
- Date: Tue, 13 Dec 2011 19:26:41 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=1SLbF+O7AYHBnpLntNqmYBKTnEXs1pidVmN2L1w95nY=; b=Z6tHwHBi1IQMQPqFVeu4aIDuEJVpWf0rsLDGi7VuxB8pNdetE/vnfZiq1l7STdAQv0 7sLaNPjwJtLiBaNftM/M90B+kOz8DxrvMkztQf8pgGmTwrAHWBFqJKszp2/AuLwHkEW/ 07SPYVVS0N8seoy7tlFUEVUoRCVHeRmtkhScY=
Добрый день.
Хочу поинтересоваться, какие существующие модули можно использовать (стоит посмотреть как пример) для разработки следующего функционала:
по приходящему запросу вида 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 ~
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|