首页 > 解决方案 > Nodejs:如何将子域重定向到端口?

问题描述

我正在创建一个以 API 作为后端的全栈网络应用程序,并将其托管在DigitalOcean服务器上。

前端(reactjs)在一个端口(3000)上运行,后端(快速服务器-RESTFul API-)在另一个端口(3001)上运行。

我希望能够从一个域与他们两个进行通信。

前任 :

我怎样才能做到这一点 ?

我已经尝试了一些事情:

我真的不想把前端和后端放在同一个运行的服务器(同一个端口)

我在掌握服务器方面很新,所以我什么都不知道,对不起。

谢谢您的帮助。

PS:我是法国人,很抱歉英语不好:)

标签: node.jsreactjsexpressfrontendbackend

解决方案


你好,因为我没有那么多信息,所以我会保持一般。你想要的是一个反向代理。您可以使用 http-proxy-middleware:https://www.npmjs.com/package/http-proxy-middleware

假设您在 http://example.com:3000 上运行前端,在http://example.com:3001运行后端。

现在假设您希望http://example.com:3001/42-is-the-answer指向http://example.com:3000(您可以根据需要添加路径)。

唯一要做的就是在 example.com:3001 的服务器实例上使用代理,如下所示:

const proxy = require("http-proxy-middleware");
const app = express();
....
app.use(    proxy("/42-is-the-answer", {
  target: "http://example.com:3000/"
}))

现在,如果您访问http://example.com:3001/42-is-the-answer,请求将被代理到http://example.com:3000

我希望这有帮助。


推荐阅读