如何在单个液滴上将不同的 MERN 应用程序部署到数字海洋?
How to deploy different MERN apps to digital ocean on a single droplet?
我一直使用 heroku 来部署我的 MERN 应用程序。对于 mongo 数据库,我使用 MongoDB Atlas,但在我的工作中,他们希望将所有项目迁移到 DigitalOcean。我对此有几个问题:
- 我可以 mongoDB + nodejs 后端 + React 应用程序在一个单一的
水滴?
- 我可以在一个 Droplet 中部署两个或更多应用程序吗? (这
应用程序具有不同的域)
- 有没有这方面的视频教程
(我已经阅读了很多文档并在尝试时遇到了很多错误
去做吧。我的眼睛受伤了)
- 例如,如果我在 Heroku 中有两个应用程序用于同一个网站,一个应用程序用于 nodejs 后端,另一个应用程序用于反应前端......我可以在 DigitalOcean 上做同样的事情吗?
提前致谢!
是的,你可以在一台服务器上部署多个服务,它们只需要监听不同的端口即可。
例如,假设 MongoDB 服务器在端口 27017
上 运行,Node.js http 服务器在端口 [=] 上 运行 11=],React 应用程序 运行 在端口 8000
.
比如说,你服务器的IP是13.13.13.13
.
然后您可以分别使用 13.13.13.13:27017
、13.13.13.13:5000
和 13.13.13.13:8000
访问您的 MongoDB 服务器、Node.js http 服务器和 React 应用程序,来自 Internet 上任何未阻止您的 IP 的地方。
现在,在您的服务器中,您设置 iptables
将所有来自端口 8000
的传入连接转发到 80
。现在,您可以通过访问 13.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
.
的后端服务器
我一直使用 heroku 来部署我的 MERN 应用程序。对于 mongo 数据库,我使用 MongoDB Atlas,但在我的工作中,他们希望将所有项目迁移到 DigitalOcean。我对此有几个问题:
- 我可以 mongoDB + nodejs 后端 + React 应用程序在一个单一的 水滴?
- 我可以在一个 Droplet 中部署两个或更多应用程序吗? (这 应用程序具有不同的域)
- 有没有这方面的视频教程 (我已经阅读了很多文档并在尝试时遇到了很多错误 去做吧。我的眼睛受伤了)
- 例如,如果我在 Heroku 中有两个应用程序用于同一个网站,一个应用程序用于 nodejs 后端,另一个应用程序用于反应前端......我可以在 DigitalOcean 上做同样的事情吗?
提前致谢!
是的,你可以在一台服务器上部署多个服务,它们只需要监听不同的端口即可。
例如,假设 MongoDB 服务器在端口 27017
上 运行,Node.js http 服务器在端口 [=] 上 运行 11=],React 应用程序 运行 在端口 8000
.
比如说,你服务器的IP是13.13.13.13
.
然后您可以分别使用 13.13.13.13:27017
、13.13.13.13:5000
和 13.13.13.13:8000
访问您的 MongoDB 服务器、Node.js http 服务器和 React 应用程序,来自 Internet 上任何未阻止您的 IP 的地方。
现在,在您的服务器中,您设置 iptables
将所有来自端口 8000
的传入连接转发到 80
。现在,您可以通过访问 13.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
.