首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个水滴上将不同的MERN应用部署到数字海洋?

如何在一个水滴上将不同的MERN应用部署到数字海洋?
EN

Stack Overflow用户
提问于 2020-03-19 12:38:22
回答 1查看 2K关注 0票数 3

我一直使用heroku部署我的MERN应用程序。对于MongoDB,我使用MongoDB地图集,但在我的工作中,他们希望将所有项目迁移到DigitalOcean。我对此有几个问题:

  1. 可以让mongoDB + nodejs后端+在单个液滴上反应应用吗?
  2. 可以在单个液滴中部署两个或多个应用程序吗?(应用程序有不同的域)
  3. 有关于这方面的视频教程(我已经阅读了很多文档,并且在尝试时遇到了许多错误。例如,如果我在Heroku中有两个应用程序用于同一个网站,一个应用程序用于nodejs后端,另一个应用程序用于react前端.我可以在DigitalOcean上做同样的事情吗?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-20 10:00:26

是的,您可以在一台服务器上部署多个服务,它们只需要监听不同的端口.

例如,假设MongoDB服务器运行在端口27017上,Node.js http服务器运行在端口5000上,React应用程序运行在端口8000上。

比如说,您的服务器的IP是13.13.13.13

然后,您可以访问您的MongoDB服务器、Node.js http服务器,并分别使用13.13.13.13:2701713.13.13.13:500013.13.13.13:8000从您的IP未被阻塞的任何地方访问React应用程序。

现在,在您的服务器中,设置iptables将所有传入连接从端口8000转发到80。现在,您可以通过访问13.13.13.13访问您的React应用程序,不再需要使用端口了。

现在,假设您为example.comapi.example.com添加DNS记录以指向您的IP。而且,由于您不能拥有指向端口的A记录或CNAME记录,您的两个域都会引导您到您的应用程序。如果要访问Node.js后端(如http://example.com:5000http://api.example.com:5000 ),则必须与域一起显式指定端口号。

如果不想使用端口号访问后端,可以使用Nginx作为反向代理。您可以设置Nginx将所有流量路由到api.example.com到后端服务器,侦听localhost:5000

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60757456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档