0

你好我有这个问题我还没有找到答案。我想创建类似于我附加的图像的东西。 我想实现的最终结构

正常的工作流程应该是这样的:

  1. 客户端向服务器 1 发送请求;
  2. 服务器1收到请求;
  3. 服务器 1 向客户端发送 302(重定向)响应;
  4. 然后客户端向服务器2发送一个新的http请求;
  5. 服务器2收到请求;
  6. 服务器 2 向客户端发送 200(ok)响应;

而不是这个,我想实现类似的东西:

  1. 客户端向服务器 1 发送请求;
  2. 服务器1收到请求;
  3. 服务器 1 将请求转发给服务器 2;
  4. 服务器2收到请求;
  5. 服务器 2 向客户端发送直接响应;

所以我不想从服务器 1 向客户端发送重定向响应,然后从客户端向服务器 2 发送新请求!

用 node.js 或者至少用 python 实现这样的事情是可能的。我想要这种架构来加速我的服务,因为服务器-服务器连接比客户端-服务器连接快得多。

4

2 回答 2

1

如果您需要在 server1 向 server2 执行请求之前执行一些逻辑(例如,根据请求的某些条件选择服务器 2 中的端点),那么您可以使用 Node.js 标准库模块中的请求函数(请参阅httpshttp上的文档: //nodejs.org/dist/latest-v4.x/docs/api/http.html#http_http_request_options_callback)。但是,如果您不需要执行任何逻辑,那么最好使用https://www.npmjs.com/package/http-proxy,因为您避免了很多样板代码。

于 2016-02-12T21:00:27.367 回答
0

您需要使用代理。

https://www.npmjs.com/package/http-proxy

或者你可以在 node.js 服务器前面使用 nginx 或类似的东西作为代理。

唯一的问题是请求必须通过代理返回,因为这就是 tcp 连接的工作方式

于 2016-02-12T20:05:41.827 回答