我一直使用heroku部署我的MERN应用程序。对于MongoDB,我使用MongoDB地图集,但在我的工作中,他们希望将所有项目迁移到DigitalOcean。我对此有几个问题:
提前感谢!
发布于 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:27017、13.13.13.13:5000和13.13.13.13:8000从您的IP未被阻塞的任何地方访问React应用程序。
现在,在您的服务器中,设置iptables将所有传入连接从端口8000转发到80。现在,您可以通过访问13.13.13.13访问您的React应用程序,不再需要使用端口了。
现在,假设您为example.com和api.example.com添加DNS记录以指向您的IP。而且,由于您不能拥有指向端口的A记录或CNAME记录,您的两个域都会引导您到您的应用程序。如果要访问Node.js后端(如http://example.com:5000或http://api.example.com:5000 ),则必须与域一起显式指定端口号。
如果不想使用端口号访问后端,可以使用Nginx作为反向代理。您可以设置Nginx将所有流量路由到api.example.com到后端服务器,侦听localhost:5000。
https://stackoverflow.com/questions/60757456
复制相似问题