问题标签 [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 回答
9280 浏览

node.js - 使用 http-proxy 与 node.js 进行负载平衡

我正在尝试使用 node.js 和 http-proxy 编写负载平衡。我想要一个在 2 个服务器之间共享传入请求处理的 loadBalancer。

我认为这样做会使 loadBalancer 交替向 serv1 和 serv2 发送请求。

但是,当我尝试时,它似乎以没有特定顺序请求 2 个服务器。此外,大部分请求都发送到我的 localhost 节点服务器( 127.0.0.1:3000 )

有人能够解释这种行为吗?

0 投票
1 回答
3327 浏览

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

我正在编写一个 node.js 代理服务器,为不同域上的 API 提供请求。

我想使用node-http-proxy并且我已经找到了修改响应标头的方法

但是有没有办法根据条件修改请求数据(即添加 API 密钥)并考虑到可能有不同的方法 request - GET, POST, UPDATE, DELETE

或者,也许我搞乱了node-http-proxy的目的,而有什么更适合我的目的?

0 投票
1 回答
183 浏览

node.js - 有http代理时node.js不会自动传递库JS

我设置了一个 node-http-proxy 来将 site/n 请求转发到 node.js(在端口 9000),并将其他请求转发到 apache(端口 8000)。这是因为我大量使用 socket.io,并且我不希望 apache 为每个 websocket 请求创建一个线程。

以下代码效果很好,直到我想通过我的公共 IP 访问它。一切正常,除了一件事 - my_public_ip/n/socket.io/socket.io/js 返回“404 Not Found”。似乎这个请求并没有被 node.js 默默地吸收

0 投票
1 回答
1964 浏览

node.js - EC2 托管的 Node.js 应用程序 - 无法远程连接到端口

更新:原来唯一的问题是我在防火墙后面阻止了一些端口,但不是 8000。


编辑:TL;DR:无法远程连接到端口 9000,但端口 8000 没问题,我不知道为什么 :(


我有这个 node.js 应用程序在端口8000上运行,另一个(http-proxy)在端口9000上运行。

在我的机器上运行它们很好,但是当我将它们放在服务器上时我遇到了一些问题(EC2实例 - 我确实在 Web 控制台安全组[1]中打开了端口)。该应用程序运行良好,但我无法从外部连接到代理。我试图$ telnet localhost 9000在服务器上连接,所以我想这是一个好兆头。

我注意到的另一件事是,如果我尝试单独运行应用程序,我会得到相同的结果,即:8000 - OK,9000 - NOTOK :<。但是,如果我将代理使用的端口从 9000 更改为 8000,它就可以工作。如果我切换端口,即应用程序:9000 和代理:8000,我可以连接到代理,但不能连接到应用程序。我也尝试过其他数字,但这也无法解决。

我想有一些非常愚蠢的东西与应用程序本身无关并且我错过了,但我不能指望它,所以有人知道为什么这个设置不起作用吗?

服务器.js

代理.js

$ netstat -pln | grep node输出

安全组规则

1

0 投票
0 回答
527 浏览

node.js - node.js node-http-proxy,带有 url 编码数据的代理

我是 Node.js 的新手,并且很难理解如何为给定的路由/url 创建一个简单的代理。

我试图通过在我的 node.js(带有 express)服务器上使用代理来避免前端 javascript 日志记录框架的跨域问题。我正在使用node-http-proxy模块,但遇到了 request.body 始终为 JSON 的问题。我需要向日志服务器端点发送 url 编码的数据,而不是 JSON。因此,即使我将 url 编码的数据作为请求的主体发送到代理,代理也会将 JSON 数据作为请求的主体发送到日志服务器。

我尝试在代理中将正文转换为 url 编码的字符串,但它更奇怪的是在正文的开头添加了一个引号字符。一个单双引号。

谢谢您的帮助。这是我的路线:

我在 jquery 中的 ajax 调用是:

0 投票
3 回答
10658 浏览

node.js - 如何使用 node-http-proxy 反向代理客户端 POST 和 PUT 请求

我正在尝试使用 node-http-proxy 作为反向代理,但我似乎无法让 POST 和 PUT 请求工作。文件 server1.js 是反向代理(至少对于带有 url “/forward-this”的请求),server2.js 是接收代理请求的服务器。请解释我做错了什么。

这是 server1.js 的代码:

这是 server2.js 的代码:

0 投票
1 回答
85 浏览

node.js - 节点 HTTP 代理路由表否则/未找到

我有一个node-http-proxy使用代理表配置的服务器:

hostname如果既不是 a、b 或 c 来使用服务器,有没有办法运行它else

0 投票
0 回答
456 浏览

asp.net-mvc-3 - 停止代理服务器将 HTTP POST 转换为 HTTP GET

我有一个 Web 应用程序,它具有仪表板功能。许多不同的公司在许多不同的环境中使用该应用程序,所有浏览器。

有一段 javascript 每 60 秒刷新一次仪表板,通过一个 http POST 到一个返回 JSON 的 url。

对于一位用户(并且仅根据我的日志,一位用户)每 60 秒从该 URL 生成以下 .NET 错误消息:

对于所有其他用户,从来没有问题。

我知道这个用户在代理的网络上(政府)。这个用户是一个新用户——也就是说,我们在这个网络上从来没有其他用户。

以上使我相信他们的代理出于某种原因正在修改请求(尝试带宽优化?),默默地将 POST 转换为 GET。出于安全原因,我的 Asp.NET MVC 应用程序(正确地)拒绝接受请求。

当然,我不太可能更改他们的代理设置。

我尝试将以下内容添加到操作中:

也:

但问题依然存在。

我是否可以设置任何其他 HTTP 标头来指示代理停止修改内容?使这些代理行为的任何其他方式?或者浏览器中是否有任何可能这样做的东西?

更新:写这篇文章后,来自同一家公司的另外 2 个不同的用户现在正在生成这些错误,这增加了我的代理理论的权重。

0 投票
3 回答
3770 浏览

node.js - 从代理服务器获取响应

我使用 node-http-proxy 模块在 node.js 中创建了一个代理服务器。

看起来像这样:

因此,我需要在将响应发送回客户端之前从我代理的服务器获取正文并对其进行分析。

但是我找不到可以获取此数据的事件或属性。我试过了:

但我不知道我们如何从中获得哑剧体。

0 投票
2 回答
665 浏览

node.js - 如何使用 node-http-proxy 代理 Wordpress,我的 wordpress 重定向到不同的端口

我想代理托管在 localhost 的 8888 端口的 Wordpress。

当我按如下方式 http://localhost:8001/ 访问此节点-http-proxy 时,它会重定向到 http://localhost:8888/。我的意思是 Wordpress 会进行重定向,因为 Wordpress 认为它​​在端口 8888 上。

我怎样才能正确地反向代理呢?

这个问题有帮助吗?https://github.com/nodejitsu/node-http-proxy/pull/376但我不明白如何使用它。