使用nodejs反向代理是否有助于带宽

时间:2018-03-04 00:15:01

标签: node.js reverse-proxy

我想知道使用nodejs反向代理是否会对带宽产生任何影响,例如,您有两台服务器server 1 --> mainWebsite.comserver 2 --> videosWebsite.com谁负责投放视频。所以当我这样做时:

app.all("/videos/:id/",  function(req, res) {
    apiProxy.web(req, res, {target: 'videosWebsite.com'});
});

mainWebsite.com是否videosWebsite.comvideosWebsite.com下载视频然后将其发送到客户端(意味着两台服务器中的带宽已经完成),或者圆满完成就在videosWebsite.com上(当我说带宽时)我的意思是服务视频所需的带宽)。 我的问题很简单,但我不知道如何解释它,也许下面的例子会说清楚。 每个视频都是1 Gb,当我们通过反向代理请求100次时,这会使videosWebsite.com向客户端上传100 Gb的带宽,我的问题是:制作反向代理的服务器或者包含它的服务器怎么样? ,他是否从 //the html <div class="wizard"> <div class="wizard-inner"> <div class="connecting-line"></div> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active" id="step_1"> <a href="#step1" data-toggle="tab" aria-controls="step1" role="tab" title="Step 1"> <span class="round-tab"> <div class="numberCircle">1</div> </span> </a> </li> <li role="presentation" class="disabled" id="step_2"> <a href="#step2" data-toggle="tab" aria-controls="step2" role="tab" title="Step 2"> <span class="round-tab"> <div class="numberCircle">2</div> </span> </a> </li> <li role="presentation" class="disabled" id="step_3"> <a href="#step3" data-toggle="tab" aria-controls="step3" role="tab" title="Step 3"> <span class="round-tab"> <div class="numberCircle">3</div> </span> </a> </li> <li role="presentation" class="disabled" id="step_4"> <a href="#complete" data-toggle="tab" aria-controls="complete" role="tab" title="Complete"> <span class="round-tab"> <div class="numberCircle">4</div> </span> </a> </li> </ul> </div> <div class="tab-pane active" role="tabpanel" id="step1"><li><button type="button" class="btn btn-default prev-step" style="margin-top:-30px;">Previous</button></li> <li><button type="button" class="btn-info-full next-step" style="margin-top:-30px;">Save and continue</button></li></div> <div class="tab-pane" role="tabpanel" id="step2"><li><button type="button" class="btn btn-default prev-step" style="margin-top:-30px;">Previous</button></li> <li><button type="button" class="btn-info-full next-step" style="margin-top:-30px;">Save and Continue</button></li></div> <div class="tab-pane" role="tabpanel" id="step3"><li><button type="button" class="prev-step" style="margin-top:-30px;">Previous</button></li> <li><button type="button" class="btn btn-success btn-info-full next-step" style="margin-top:-30px;">Save and Finish</button></li></div> </div> </div> </div> </div> //The js tab script <script> $(document).ready(function () { //Initialize tooltips $('.nav-tabs > li a[title]').tooltip(); //Wizard $('a[data-toggle="tab"]').on('show.bs.tab', function (e) { var $target = $(e.target); if ($target.parent().hasClass('disabled')) { return false; } }); $(".next-step").click(function (e) { var $active = $('.wizard .nav-tabs li.active'); $active.next().removeClass('disabled'); nextTab($active); var current_tab = e.target; //GOT CURRENT TAB var previous_tab = e.relatedTarget; //GOT PREVIOUS TAB $previous_tab.parent().addClass('disabled'); //WHAT I TRIED }); $(".prev-step").click(function (e) { var $active = $('.wizard .nav-tabs li.active'); prevTab($active); }); }); function nextTab(elem) { $(elem).next().find('a[data-toggle="tab"]').click(); } function prevTab(elem) { $(elem).prev().find('a[data-toggle="tab"]').click(); } </script> 下载100Gb而不是将其发送到客户端(上传100Gb到客户端)?

1 个答案:

答案 0 :(得分:2)

  

mainWebsite.com是否从videosWebsite.com下载视频,然后将其发送到客户端

是的,当您按照显示的方式实现代理时,最终会使用双倍的带宽。当客户端请求视频将视频从目标服务器下载到您的服务器,然后从您的服务器发送到客户端时。

  

每个视频都是1 Gb,当我们通过反向代理请求100次时,这会让videosWebsite.com向客户端上传100 Gb的带宽,我的问题是:制作反向代理的服务器或者包含哪些服务器它是否从videosWebsite.com下载100Gb而不是将其发送到客户端(上传100Gb到客户端)?

从服务器的角度来看,您将使用100GB的下载带宽(从目标服务器检索视频到服务器)和100GB的上传带宽(从服务器发送到客户端)。

避免这种带宽加倍的唯一方法是让客户端直接从目标下载视频,而不是通过代理。如果这些资源是静态的并且不会更改,您还可以在自己的服务器上实现缓存,并避免缓存中任何资源的双倍带宽。