Articles of 节点 http proxy

nodejs:使用http-proxy的路由表

尝试使用http-proxy 1.4.3使用自定义路由逻辑放置一个http代理,然后执行以下代码并执行以下代码: var httpProxy = require("http-proxy"); var url = require("url"); httpProxy.createServer(function(req, res, proxy) { var hostname = req.headers.host.split(":")[0]; var pathname = url.parse(req.url).pathname; // Options for the outgoing proxy request. var options = { host: hostname }; // Routing logic if(hostname == "127.0.0.1") { options.port = 8083; } else if(pathname == "/upload") { options.port = 8082; […]

NodeJS http-proxy:代理https时出现DEPTH_ZERO_SELF_SIGNED_CERT错误

我正在使用最新版本的nodejs和http-proxy在线示例,但是当我的请求发送到端点https服务器时,出现以下错误: C:\Users\Me\node_modules\http-proxy\lib\http-proxy\index.js:114 throw err; Error: DEPTH_ZERO_SELF_SIGNED_CERT at SecurePair.<anonymous> (tls.js:1370:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:982:10) at CleartextStream.read [as _read] (tls.js:469:13) at CleartextStream.Readable.read (_stream_readable.js:320:10) at EncryptedStream.write [as _write] (tls.js:366:25) at doWrite (_stream_writable.js:226:10) at writeOrBuffer (_stream_writable.js:216:5) at EncryptedStream.Writable.write (_stream_writable.js:183:11) at write (_stream_readable.js:582:24) 我的代码非常简单: var httpProxy = require('http-proxy'); var http = require('http'); var fs = require('fs'); var apimcert […]

如何更新http呼叫的位置

即时通讯从以下链接使用反向代理,目前我正在获取一些位置,我想更新它(位置),我该怎么做? proxy.on('proxyRes', function (proxyRes, req, res) { res.headers.location = 'http:/a/b/' }); 我需要改变它,例如 res.headers.location ='http:/ c / d /'我将处理如何更改URL的逻辑,但我想知道如何更新它… https://github.com/nodejitsu/node-http-proxy

Node.js代理能够更改响应头并注入额外的请求数据

我正在编写一个node.js代理服务器,向不同域中的API提供请求。 我想使用节点HTTP代理 ,我已经find了一种方法来修改响应头 。 但有没有办法修改条件(即添加API密钥)的请求数据,并考虑到可能有不同的方法请求 – GET , POST , UPDATE , DELETE ? 或者,也许我搞乱了node-http-proxy的目的,有什么更适合我的目的?

在一个端口上使用单个应用程序的节点应用程序使用代理服务器(如node-http-proxy)有什么意义?

我正在探索使用node-http-proxy代理服务器,以便我们可以在端口80上将我们的代理服务器转发到端口8000上的我们的应用服务器。但是,我有点困惑,为什么这是一个好主意,而这个设定会如何保护安全。 note-http-proxy文档讨论了很多使用它作为将请求转发到具有多个端口或IP地址的应用程序的方法。 这显然是非常有用的,特别是基本的循环负载平衡策略。 但是,我们只在一个端口上有一个应用程序,所以我们没有必要这样做。 如果有一个重要的安全原因,我们应该使用这个代理服务器,那么我想知道什么types的攻击,它的保护。 另外,我们使用的是socket.io,所以如果代理服务器能够帮助websocket服务器扩展,我也想明白这一点。 我们无法确定如何在没有sudo情况下运行我们的应用程序(因为所有1024以下的端口都需要root访问权限),所以如果现在真的没有理由使用代理服务器,那么我们只会报废。 如果有人知道如何使用端口80上的代理服务器运行这个应用程序没有根权限,这也是非常有用的。 谢谢!

使用http-proxy向新端口发送代理请求

我使用这个代码我想要创build代理,所有的应用程序调用到端口3000将被路由到“端口”3002端口 var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer(); http.createServer(function (req, res) { proxy.web(req, res, { target: 'http://localhost:3002' }); }).listen(3000); // Create target server http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2)); res.end(); }).listen(3002); 现在,当我运行与原始端口(3000)的应用程序,我在浏览器中看到 请求成功代理到3002 当我将端口(在浏览器中)更改为3002时,我仍然收到相同的消息,为什么? 可以吗? […]

如何使用node-http-proxy反转代理客户端POST&PUT请求

我试图使用节点HTTP代理作为反向代理,但我似乎无法获得POST和PUT请求工作。 文件server1.js是反向代理(至less对于具有url“/ forward-this”的请求),server2.js是接收代理请求的服务器。 请解释我做错了什么。 以下是server1.js的代码: // File: server1.js // var http = require('http'); var httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { if (req.method == 'POST' || req.method == 'PUT') { req.body = ''; req.addListener('data', function(chunk) { req.body += chunk; }); req.addListener('end', function() { processRequest(req, res, proxy); }); } else { processRequest(req, res, proxy); } […]

目标的Http代理错误

我使用下面的代码,它的工作原理 proxy.web(req, res, { changeOrigin: true, target: 'http://' + hostname + ':' + port, ws: true }); 但是,当我尝试以下我得到错误,为什么? proxy.web(req, res, { target: { host: 'http://' + hostname, port: port }, });

如何使用node-http-proxy进行HTTP到HTTPS的路由?

以下是我正在使用的模块版本: $ npm list -g | grep proxy ├─┬ http-proxy@0.10.0 一个web服务调用我的机器,我的任务是代理请求到一个不同的url和主机与一个额外的查询参数基于请求的内容: var http = require('http'), httpProxy = require('http-proxy') form2json = require('form2json'); httpProxy.createServer(function (req, res, proxy) { // my custom logic var fullBody = ''; req.on('data', function(chunk) { // append the current chunk of data to the fullBody variable fullBody += chunk.toString(); }); req.on('end', function() { […]

节点服务器的响应时间出现意外延迟

问题陈述- 我们在互联网客户端和下游服务之间使用路由器。 路由器(服务)是用Node.js编写的 其责任是将networking客户端的请求传递给相应的下游服务,并将响应返回给networking客户端。 我们在路由器级面临一些延迟。 用于http-proxy- https://github.com/nodejitsu/node-http-proxy 节点 – http代理示例 – 用样例解释。 我们在99%的情况下面临着问题 – 我们做了100次并发的加载/性能testing。 根据结果​​,直到95百分位,对互联网客户的响应时间看起来很棒。 但是,在百分之九十九的情况下,下游服务在预期时间(〜250ms)内响应。 但路由器比预期的时间多了10倍(〜2500毫秒)。 服务信息 – 路由器和下游服务都在同一个区域,同一个子网。 所以,这个延迟不是因为networking。 这种延迟的可能性 – 某些线程在节点服务级别被阻塞。 这就是为什么,不能听下游服务响应。 花更多的时间在DNS查找。 节点级别线程数量less,这就是为什么不能监听来自下游服务端的所有传入响应。 为了分析这一点, 我们在configuration下面查了下来 – keepAlive,maxSockets,maxFreeSockets,keepAliveMsecs,日志级别。 PLease检查http / https代理的节点configuration – http代理configuration 节点服务的代码片段 – var httpProxy = require('http-proxy'); var http = require('http'); var https = require('https'); var agent = new […]