问题标签 [node-http-proxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1339 浏览

node.js - 用于监控网络请求和响应的 Node.js 代理

我正在使用 Nodejitsu 的 http 代理来构建一个监控网络流量的工具。

我想做的是

  1. 代理从客户端(浏览器)到我的目标服务器的传出请求
  2. 从我的目标服务器将它们发送到其原始目标网址
  3. 在我的目标服务器上接收响应
  4. 将响应发送回客户端

基本上在客户端和目标服务器之间放置了一个中间人,这样我就可以监控流量。但是,当我尝试执行此操作时,一旦发出 302 请求,就会出现ECONN错误。

谁能帮我弄清楚发生了什么

更新

我像这样更改了 302Location参数:

现在,当浏览器尝试访问我的代理服务器时,它会进入重定向循环。为什么会这样?

0 投票
1 回答
2476 浏览

node.js - 如何使用 node-http-proxy 进行 302 重定向?

我的代码:

当我从浏览器发出请求时,出现以下错误:

我不知道这个错误是什么意思。谁能帮我解决这个问题?

0 投票
1 回答
1362 浏览

node.js - Node.js:使用快速路由进行 url 重写以代理到 etherpad

我关于stackoverflow的第一个问题;)。


我想做什么:我想使用快速路由“/pad/*”来显示 etherpad(etherpad lite)并操纵用户将看到的 pad。所以,如果我得到“/pad/p/something”,“something”将被处理,并相应地更改为真实的ID,例如“XYZ”。因此用户可以编辑正确的焊盘。但是,etherpad 需要很多静态的东西和 websocket,因此我想代理它,并在需要时操纵 ID


最小工作示例:当然,ID 更改的真正逻辑要复杂得多,但对于最小工作示例,我只是使用每个 padID 映射到“a”的逻辑。

我想出了这个:


问题: url 更改和代理实际上可以工作......有点。所有 url 都被映射以删除每个 url 前面的“/pad”,这些 url 适用于 pad、静态内容和 websocket。但是,pad ID 的映射不起作用。如果我查看“localhost:3000/pad/p/a”,我会看到“a”-pad。如果我查看“localhost:3000/pad/p/b”,我会看到“b”-pad,这不是我打算做的:/。

我究竟做错了什么?这是 node-http-proxy、express 还是 etterpad-lite 问题?

任何提示表示赞赏

0 投票
1 回答
215 浏览

node.js - 代理会话时如何在 http-proxy 中获取 HTTP METHOD?

我正在使用 Node.js 和模块http-proxy(链接此处)在我的服务器中代理请求。

检测 DELETE 请求

我想要实现的是在发送 HTTP DELETE 请求时执行某些操作。

可怜的医生

我怎样才能做到这一点?模块http-proxy带有非常差的文档和对象,例如resreq并且proxyRes没有正确记录。从文档中可以理解该对象proxyRes有一个名为的属性,仅此headers而已。

0 投票
0 回答
1462 浏览

angularjs - 跨域未设置 Cookie

我正在制作一个 angularjs cordova 应用程序。要登录,我们必须向另一个域执行第一个请求,/login并且响应有一个名为的条目cookie,其中包含我们必须设置才能登录的 cookie。

问题是当我开发时ionic serve(所以在我的浏览器中),有一个可怕的东西叫做 CORS。而且由于我要连接的另一个站点不允许 CORS,我被迫使用代理 using node-http-proxy,它代理了请求并添加了 CORS 标头。然后,当我需要连接到另一个网站时,我在我的代理上发出请求。但现在我需要按照前面的说明登录。

所以我把这段代码放到我的代理中,它解析/login路由的响应并简单地提取 cookie:

现在,当我到达时,/login我看到
cookie found: 1gmriba47wlc4ow4k88k8o8044gskso8sc4s0c8k40gcs44g8og40c8sks00so8og

由于某些原因,没有在第一个请求上设置 cookie。所以我在另一台服务器的某个地方发出了第一个请求(总是通过代理)。

在响应标头中有

铬检测到它。但是当我想向 url 发出请求并且必须登录时,没有 cookie,不在请求中也不在响应中:(

这就是我在角度上的做法:

完整的代理文件在这里:https ://gist.github.com/vinz243/fd01b77ef309101976a5

我希望我很清楚。

0 投票
0 回答
437 浏览

node.js - 如何检测目标服务器何时在 http-proxy 中关闭?

我正在尝试为我在 Windows 机器上运行的内部节点快速服务器创建面向互联网的服务器。为此,我有一个打开端口的虚拟 unix 框,我正在使用 http-proxy 制作一个代理服务器,它将请求重定向到我的内部服务器。

如果内部服务器关闭,我想向用户显示自定义 html 页面。我在虚拟 unix 框中运行了以下代码(相关部分):

如果我在 Windows 机器上运行上面的代码,它可以正常工作。出于某种原因,当我在 unix 框中运行时,它不起作用。谁能帮我理解为什么会这样?如果您可以提供替代方法来检测目标服务器何时在 http-proxy 中关闭,那就太好了。

如果您需要任何其他信息,请告诉我。

0 投票
1 回答
349 浏览

node.js - 代理后http请求不发出“结束”

我需要能够在我的请求代理应用程序中使用 http 请求正文,然后在实际的 Web 服务中再次使用。我正在使用 restreamer 来“重置”流(甚至自己编写了中间件,没有任何改变)。Web 服务可以很好地接收正文,但由于从不发出 end,我无法继续请求。

使用邮递员进行测试,发送原始正文,设置内容类型。任何建议将不胜感激。谢谢!

0 投票
4 回答
5799 浏览

node.js - 在nodejs中试图让http-proxy转发通过查询字符串参数的请求

如何在 nodejs 中使用查询字符串参数代理请求,我目前正在使用 express 和 http-proxy?

我有一个 nodejs 应用程序,使用 express 和 http-proxy 模块将 HTTP GET 请求从我端的某些路径代理到在同一服务器上运行但不同端口的第三方 API(因此遇到相同的来源问题,需要代理人)。这工作正常,直到我想使用查询字符串参数(即“?name = value”)在后端 API 上调用 REST 函数。然后我得到一个404。

Chrome 的控制台显示:

注意:我稍后会在 express 中使用其他东西,但不会在代理行之前使用,并且在路由路径时我从更具体到更一般。可以使用相同的协议直接在浏览器中访问后端://url:port/path?name=value 没有问题。

0 投票
1 回答
461 浏览

node.js - 尽管 maxSockets 很高,Nodejs 出站 HTTP 请求仍会延迟

我正在 Mac OS X 10.9.5 上本地开发一个 node.js 应用程序,它代理对另一台服务器上的大文件的请求。我尝试使用 node-http-proxy 以及简单的 http/request one-liner (req.pipe(request()).pipe(res)) 编写我的应用程序。两者都可以正常工作,直到我开始向我的代理发出 30 个同时请求以获取大型 (90MB) 文件。跟踪后端服务器上的访问日志,我可以看到我的代理请求中只有一部分立即出现。其他的会在几秒钟内滴流,有时在几分钟后。在某些情况下,后来的出站请求与立即到达的一些请求的完成相对应,而在其他情况下,就解除阻塞请求而言,我看不到任何模式。立即发送到后端服务器的请求数不一致。我试过设置http。globalAgent.maxSockets 比我的 30 个请求大得多,但这并没有什么区别。关于什么可能会延迟我的出站 HTTP 请求的子集的任何其他想法?谢谢!

0 投票
0 回答
78 浏览

node.js - http-proxy 失败退出

我正在使用 Node.js(和 Express,如果这很重要)充当代理,使用 http-proxy,如下所示:

哪个工作正常,什么时候工作。但是,如果目标服务器没有正确响应,则整个 Node 实例结束,说

代理启动
代理成功

错误: 在 Object.afterConnect [as oncomplete] (net.js:895:19)
的 errnoException (net.js:904:11)处连接 ETIMEDOUT

然后程序退出!

对于我想到的每一个变化,这个问题都出奇地顽固。