Node.js 如何将不同的MERN应用部署到数字海洋中?
我一直使用heroku部署我的MERN应用程序。对于mongo db,我使用MongoDB Atlas,但在我的工作中,他们希望将所有项目迁移到DigitalOcean。关于这一点,我有几个问题:Node.js 如何将不同的MERN应用部署到数字海洋中?,node.js,reactjs,mongodb,digital-ocean,mern,Node.js,Reactjs,Mongodb,Digital Ocean,Mern,我一直使用heroku部署我的MERN应用程序。对于mongo db,我使用MongoDB Atlas,但在我的工作中,他们希望将所有项目迁移到DigitalOcean。关于这一点,我有几个问题: 我可以在单个服务器上安装mongoDB+nodejs后端+react应用程序吗 水滴 我可以在一个微滴中部署两个或多个应用程序吗?(修订) 应用程序有不同的域) 有关于这个的视频教程吗 (我读了很多文档,在尝试时犯了很多错误 要做到这一点,我的眼睛很痛是的,你可以在一台服务器上部署多个服务,它们只需要
要做到这一点,我的眼睛很痛是的,你可以在一台服务器上部署多个服务,它们只需要监听不同的端口。
例如,让我们考虑MangGDB服务器在端口<代码> 27017代码/代码>上运行,一个NoDE.JS HTTP服务器在端口<代码> 5000 <代码>上运行,一个反应应用程序在端口<代码> 8000 上运行。 比如说,您服务器的IP是
13.13.13.13
然后,您可以分别使用13.13.13.13:27017
、13.13.13:5000
、和13.13.13:8000
,从Internet上IP未被阻止的任何位置访问MongoDB服务器、Node.js http服务器和React应用程序
现在,在服务器中,您设置了iptables
以将所有传入连接从端口8000
转发到80
。现在,您可以通过访问13.13.13
访问React应用程序,无需再使用该端口
现在,假设您为example.com
和api.example.com
添加DNS记录以指向您的IP。由于您不能有指向端口的A
记录或CNAME
记录,这两个域都会将您指向React应用程序。您必须在域中明确指定端口号如果您想访问Node.js后端,比如http://example.com:5000
,或http://api.example.com:5000
如果您不想使用端口号访问后端,可以使用Nginx作为反向代理。您可以设置Nginx,将所有流量路由到
api.example.com
到您的后端服务器,在localhost:5000
上进行侦听。我很感谢您的回答,但这很混乱。(假设我的ip是13.13.13.13)我到底把13.13.13.13:5000和13.13.13.13:27017放在哪里?我不知道“默认”文件中发生了什么,它应该是什么样子。@renoldus,你有一个MERN/MEAN应用程序吗,因为它看起来你不熟悉M和N。