栋 : F2E@taobao
weibo @zhenn
What is NodeCombo
键词
键词
    NodeJS
键词
    NodeJS

   态资    务
键词
    NodeJS

   态资    务

    Combo
键词
    NodeJS

   态资    务

    Combo

   CDN 务
态资   务
态资     务

  URL       务
node读   输       户
req


res
Node实现




         Node实现
Combo
Combo
   户       http请
   务   读   请
Push   户   CSS JS
Combo
   户                         http请
   务       读                 请
Push       户            CSS JS
       户                         a.tbcdn.cn
               ??1.js,2.js
                                    1.js
                                    2.js
                1.js+2.js
                                    …
Usage




 1.Js   应   2.Js   应
Usage




        Node实现
Usage




        Node实现
Usage


        证   应push   户




            Node实现
Usage


        证   应push   户




            Node实现
Usage


        证   应push        户

                    JS   CSS
               赖               证请
               combo顺          输
                    应结




            Node实现
CDN 务




http://a.tbcdn.cn/apps/lottery/??1.js,2.js
CDN 务
                       发环
  户
                    a.tbcdn.cn
      ??1.js,2.js

                       1.js




http://a.tbcdn.cn/apps/lottery/??1.js,2.js
CDN 务
                       发环                       产环
  户
                    a.tbcdn.cn               a.tbcdn.cn
      ??1.js,2.js                pull 2.js
                                                1.Js
                       1.js                     2.Js
                                                ...




http://a.tbcdn.cn/apps/lottery/??1.js,2.js
CDN 务
                       发环                       产环
  户
                    a.tbcdn.cn               a.tbcdn.cn
      ??1.js,2.js                pull 2.js
                                                1.Js
                       1.js                     2.Js
                                 push 2.js      ...




http://a.tbcdn.cn/apps/lottery/??1.js,2.js
CDN 务
                       发环                       产环
  户
                    a.tbcdn.cn               a.tbcdn.cn
      ??1.js,2.js                pull 2.js
                                                1.Js
                       1.js                     2.Js
       1.js+2.js                 push 2.js      ...




http://a.tbcdn.cn/apps/lottery/??1.js,2.js
Why Node , not Apache?
Apache feature

       稳

       载    发语   php/python

       简单

 ...
Combo base on
 Apache & Php
apache
apache




     过apache rewrite   检测url

   combo规则      发给cb.php处
cb.php
cb.php
cb.php




远
Node优
Node优
   local   IO
Node优
   local    IO

   remote
Node优
    local         IO

    remote

 Local & remote        IO
Sync & async
sync mode               async mode
       req1                        req1
                                 req2

                                 res1
        res1
                        结   时间     res2

      req2
               节   时间

       res2
                                        结   时间




 timeline                   timeline
Perfect?
发   构
apache

PHP
Apache
Apache



  80     吗
Apache



  80        吗



       NO
How do it?
块http-proxy
块http-proxy
npm install http-proxy
块http-proxy
      npm install http-proxy

                  务    监   80


  绑   发               apache    务

监 8080 Node监   8081
SSI   务
简单   实现
简单   实现




读 shtml         码   include
     动态读
         编码   gbk

 Node       GB编码

 继续     …
Iconv   归   吗
Iconv   归   吗


gbk           UTF8
显   HTML 远远

    GB编码 JS   CSS
iconv-lite
iconv-lite

             Unicode
GBK   节       string
iconv-lite

             Unicode
GBK   节       string       GBK   节
                       码
缓


缓   图
Node 码实现
扩      jst

a.tbcdn.cn/t.jst?id=donghan&pwd=hello1234
扩      jst

a.tbcdn.cn/t.jst?id=donghan&pwd=hello1234




                          get   post
值
简单    拟
实现
 jst 码 动态eval执 时         传   temp处   获

URL     Query对    对     对应jst 码

query        get post
实现
                        Data     query   执   时
                                   query对
 jst 码 动态eval执 时         传     temp处    获

URL     Query对    对     对应jst 码

query        get post
Node 务   稳
bash hack
项
https://github.com/zhenn/
NodeCombo
Q & Possibly A

Node combo