如何在 MERN Stack 中进行子域路由?
How to do sub-domain routing in MERN Stack?
我是 node 和 React 的新手,我正在尝试在我的 MERN 应用程序中进行子域路由。
我发现我无法在反应中路由我的子域,所以这让我只能使用节点。
在node中,有很多种方法,比如vhost,或者通过
app.get('*',(req,res)=>{
res.sendFile(path.resolve(__dirname,'client','build','index.html'))
})
但我的问题是,我是否必须为每个子域制作不同的应用程序?例如
- for admin.application.com -> React 中的管理应用程序
- for otherdomain.application.com-> react 中的其他应用程序
- 只需要 application.com -> React 中的另一个应用程序。
这是唯一的方法吗?如果是的话,有更多经验的人可以告诉我更多关于这种方式的信息吗?
如否,请指导。
每个类似于域的子域都需要有自己的DNS记录,因此被重定向到一个IP地址。您可以将来自不同子域的流量引导至同一台服务器,并通过修改您的 DNS 记录由同一应用程序处理它们。
如果这些子域之间没有区别,您可以只使用相同的 Node.js 应用程序来处理所有传入流量。但是如果你想将来自每个子域的流量挂载到不同的端口或路径(例如,admin.application.com 到应用程序的 /admin 和 otherdomain.application.com 到 /other 路径)。在这种情况下,您可以使用代理应用程序,例如 nginx 或 HAProxy。
我的建议是,如果业务逻辑不同,每个子域开发不同的应用程序。否则,您可以将所有内容都包含在同一个应用程序中。
您可以使用:
req.get('host')
获取主机名。根据主机名,您可以进一步决定路由请求。
我是 node 和 React 的新手,我正在尝试在我的 MERN 应用程序中进行子域路由。 我发现我无法在反应中路由我的子域,所以这让我只能使用节点。 在node中,有很多种方法,比如vhost,或者通过
app.get('*',(req,res)=>{
res.sendFile(path.resolve(__dirname,'client','build','index.html'))
})
但我的问题是,我是否必须为每个子域制作不同的应用程序?例如
- for admin.application.com -> React 中的管理应用程序
- for otherdomain.application.com-> react 中的其他应用程序
- 只需要 application.com -> React 中的另一个应用程序。
这是唯一的方法吗?如果是的话,有更多经验的人可以告诉我更多关于这种方式的信息吗? 如否,请指导。
每个类似于域的子域都需要有自己的DNS记录,因此被重定向到一个IP地址。您可以将来自不同子域的流量引导至同一台服务器,并通过修改您的 DNS 记录由同一应用程序处理它们。
如果这些子域之间没有区别,您可以只使用相同的 Node.js 应用程序来处理所有传入流量。但是如果你想将来自每个子域的流量挂载到不同的端口或路径(例如,admin.application.com 到应用程序的 /admin 和 otherdomain.application.com 到 /other 路径)。在这种情况下,您可以使用代理应用程序,例如 nginx 或 HAProxy。
我的建议是,如果业务逻辑不同,每个子域开发不同的应用程序。否则,您可以将所有内容都包含在同一个应用程序中。
您可以使用:
req.get('host')
获取主机名。根据主机名,您可以进一步决定路由请求。