我想知道使用nodejs反向代理是否会对带宽产生任何影响,例如,您有两台服务器server 1 --> mainWebsite.com
和server 2 --> videosWebsite.com
谁负责投放视频。所以当我这样做时:
app.all("/videos/:id/", function(req, res) {
apiProxy.web(req, res, {target: 'videosWebsite.com'});
});
mainWebsite.com
是否videosWebsite.com
从videosWebsite.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到客户端)?
答案 0 :(得分:2)
mainWebsite.com是否从videosWebsite.com下载视频,然后将其发送到客户端
是的,当您按照显示的方式实现代理时,最终会使用双倍的带宽。当客户端请求视频将视频从目标服务器下载到您的服务器,然后从您的服务器发送到客户端时。
每个视频都是1 Gb,当我们通过反向代理请求100次时,这会让videosWebsite.com向客户端上传100 Gb的带宽,我的问题是:制作反向代理的服务器或者包含哪些服务器它是否从videosWebsite.com下载100Gb而不是将其发送到客户端(上传100Gb到客户端)?
从服务器的角度来看,您将使用100GB的下载带宽(从目标服务器检索视频到服务器)和100GB的上传带宽(从服务器发送到客户端)。
避免这种带宽加倍的唯一方法是让客户端直接从目标下载视频,而不是通过代理。如果这些资源是静态的并且不会更改,您还可以在自己的服务器上实现缓存,并避免缓存中任何资源的双倍带宽。