Node.js 如何将不同的MERN应用部署到数字海洋中?

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应用程序吗 水滴 我可以在一个微滴中部署两个或多个应用程序吗?(修订) 应用程序有不同的域) 有关于这个的视频教程吗 (我读了很多文档,在尝试时犯了很多错误 要做到这一点,我的眼睛很痛是的,你可以在一台服务器上部署多个服务,它们只需要

我一直使用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。