问题标签 [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 投票
2 回答
16791 浏览

node.js - 使用节点 http-proxy 代理 websocket 连接

我有一个通过 socket.io 使用 websockets 的应用程序。对于我的应用程序,我想使用单独的 HTTP 服务器来为我的应用程序提供静态内容和 JavaScript。因此,我需要放置一个代理。

我正在使用node-http-proxy。作为起点,我的 websockets 应用程序在端口 8081 上运行。我使用以下代码将 socket.io 通信重定向到这个独立服务器,同时使用 express 提供静态内容:

上面的应用程序工作得很好,但是,我可以看到 socket.io 不再使用 websockets,而是回退到 XHR 轮询。

我可以通过查看代理代码中的日志来确认:

有谁知道如何代理网络套接字通信?来自的所有示例node-http-proxy都假设您要代理所有流量,而不是代理一些流量并为其他流量提供服务。

0 投票
1 回答
1869 浏览

javascript - 如何在nodejs代理请求中获取响应对象

我有一个 nodejs 程序,它将传入的请求定向到 couchDb 服务器。

这是代码

res对象始终未定义。如果响应是 ,我需要处理一个案例404。我们如何使用http-proxy模块来做到这一点

0 投票
1 回答
105 浏览

node.js - 来自 http-proxy 的 statusCode 不正确

这是我为测试某些情况而编写的一个小型代理程序。

这使用
"http-proxy": "0.8.x" "connect": "2.3.x"

当我运行这个程序并访问它时,通过目标 URL 的 statusCode 是 200 不存在。非常感谢任何帮助。这是如何使用连接框架捕获 404 错误的延续

0 投票
2 回答
1983 浏览

javascript - 在 node.js 代理后面使用虚拟主机运行 Apache

所以这是我的尝试,我被困住了。我有一个具有 10 多个虚拟主机的 apache2 Web 服务器。所有域都绑定到服务器 ip,并且 apache 通过虚拟主机进行路由,因此每个域都可以获得正确的内容。这已经工作多年了。现在是挑战:我现在有一些 webApps,在这台服务器上用 node.js 编写。当我想运行一个应用程序时,我必须调用一些链接,例如:mynodeapp.com:3000,具体取决于我运行应用程序的端口。我现在希望 node.js 完成所有路由,而不是 apache。我将 apache 的监听更改为 9000 端口,并希望运行一个用 node 编写的代理,它处理端口 80 上的所有请求。我认为使用 node-http-proxy 可以做到这一点。我认为它更像是转发,所以我为节点代理应用程序尝试了以下操作:

但这似乎是独立于 req.host 转发所有内容。有没有人知道如何做到这一点?我需要转发(或代理)传入的 url(my.domain.com)获取它们并将它们作为一个整体转发到端口 9000(运行 apache2 的地方),以便 apache 中的虚拟主机可以处理其余的......任何想法?最佳马丁

更新:好的,所以最后一切正常。这实际上是一个 apache 问题(错误的文件夹目标......多么愚蠢。)下面我发布了我目前非常好的工作解决方案,它非常简单:

0 投票
2 回答
436 浏览

javascript - Express.js:反向代理不同的 Web 应用程序以及资产

我想允许 Express 中经过身份验证的客户端访问在服务器上运行但在不同端口上的其他 Web 应用程序。

例如,我有 express 运行,http://myDomain并且我有另一个应用程序运行在说 port 上9000。我希望能够通过http://myDomain/proxy/9000.

我使用node-http-proxy取得了一些成功,例如:

然而,最大的问题是当 web 应用程序发出 GET 请求时,例如 for /js/lib.js,它会解析为http://myDomain/js/lib.js,这是有问题的,因为 express 不知道这些资产。正确的要求是http://myDomain/proxy/9000/js/lib.js. 我如何路由所有这些额外的请求?

0 投票
2 回答
9453 浏览

javascript - Node.js HTTP 代理修改正文

我想编写能够修改响应正文的 Node.js http 代理。到目前为止,我已经这样做了:

我曾尝试使用res.write(),但它给了我一个错误“发送后无法设置标题”。好吧,我不想更改标题,我想更改正文。
如何改变身体?任何建议将不胜感激。

0 投票
2 回答
4873 浏览

node.js - 使用 http-proxy nodejs 的基于路径的代理

我想要一个具有基于路径的路由的代理。但我的代码不起作用

问题如何?

感谢帮助

0 投票
0 回答
905 浏览

node.js - 使用 node.js 代理 http 和 websocket 流量

我正在扩展我与 mikeal 的请求模块放在一起的 node.js 反向代理:https ://github.com/mikeal/request 。它是一个连接应用程序,它使用一小块自定义中间件来检查当前请求是否是针对 API 路由的,如果是,它会像这样将其代理到不同的 API 服务器或从不同的 API 服务器代理它:

还有一些其他中间件来处理静态文件服务和其他一些东西。设置好所有中间件后,我将像这样启动服务器:

我现在想扩展这个脚本以允许反向代理 websocket 连接。我尝试使用 nodejitsu/node-http-proxy 来修改代码的前一部分,如下所示:

我注意到升级事件触发并且回调函数确实运行但 websockets 请求实际上并没有工作(客户端似乎永远不会建立连接)。有没有更好的方法来实现这一点

0 投票
1 回答
601 浏览

node-http-proxy - 如何为传出请求配置 node-http-proxy?

node-http-proxy显示选项的所有示例{target: <URL>},但我不想代理到单个目标。如何为出站请求(到任何 URL)设置它?

0 投票
2 回答
2961 浏览

javascript - 托管多个使用代理服务器识别子域的 Node.JS 应用程序

我正在尝试将某些子域重定向到我的 ubuntu AWS EC2 虚拟服务器上的特定端口。已经尝试过使用 DNS,但根据以下主题,使用 node-http-proxy 的默认路由将无法正常工作?以及如何使用 node.js http-proxy 在计算机中记录 HTTP 流量?,我试图创建一个带有日志记录的 Node.JS 代理服务器。也就是说,我将它混合在一起(我是 Node.JS 的新手,仍在学习)并制作了以下脚本:

那么发生的事情是我不断收到以下错误并且无法弄清楚如何让它工作:

简而言之,我试图在端口 80 上接收 http 请求,如果它来自 sub1.domain.com,它将被重定向到 portA,如果它来自 sub2.domain.com,它将从同一个 IP 重定向到 portB地址和两个端口都对公众开放。

有人可以解释如何解决这个问题并解释它为什么会发生吗?