[英]Measuring traffic with node.js http-proxy
我編寫了一個小型反向代理,用於使用http和node-http-proxy模塊將應用程序托管在同一台計算機上。 例如:
我有:
在端口80上運行的代理
在端口3000上運行的website1.com
在端口3001上運行的website2.com
在端口3002上運行的website3.com
如果我訪問website1.com域,則代理將使用node-http-proxy從端口3000上運行的服務器提供內容。
但是現在我需要測量每個域使用的帶寬(傳入/傳出或至少傳出)
我曾嘗試偵聽請求對象上的“數據”事件,但是在文檔中他們說由於某些原因,不會在IncomignMessage上發出可讀事件。
我也為“基本”功能編寫了一個小模塊,可以在這里找到:
https://npmjs.org/package/reproxy
參見example / example.js
那么,如何使用當前設置完成此措施?
我發現的解決方案是在RoutingProxy對象上設置和“結束”事件,並在事件回調中獲取套接字信息。
var proxy = new require('http-proxy').RoutingProxy();
proxy.on('end', function(req, res, response) {
var host = req.headers.host;
var bytesIn = response.socket._bytesDispatched;
var bytesOut = response.socket.bytesRead;
console.log('request to ' + host);
console.log('request: ' + bytesIn + ' bytes.');
console.log('response: ' + bytesOut + ' bytes.');
});
請注意,這不是最佳解決方案,因為請求大小包括反向代理添加的標頭,例如“ x-”標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.