在AWS上设置MERN应用的最佳实践

时间:2018-06-29 12:12:31

标签: express nginx amazon-ec2 mern

我知道这是主观且有主见的,我只需要从了解最佳实践开始就可以了。

我有一个MERN applocalhost上运行,而react脚本当前在port 3000上运行,而Express应用程序在port 3001上运行。

现在我要在AWS上进行实时设置,并想知道是否应该像这样创建它

前端的

website.com通过NGINX路由来自端口80 to 3000的任何内容进行响应,同时它调用与在{{1}相同实例上运行在api.website.com上的3001 }和`api.website.com具有相同的ip

在不同IP上的website.com的一个单独实例,在不同IP上的API调用的website.com的另一个实例?都无需指定端口即可访问它们

我很好奇,因为大多数时候我都使用过API,它们没有单独的端口,只是我认为是不同IP和实例的子域。

牢记我要使用SSL的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

通过SSL服务静态应用程序不是必需的,但是另一方面,您的服务器应用程序必须受到保护。直接与数据库交互的堆栈的一部分非常关键,必须加以保护以防止发生各种漏洞。除非您遵循最佳实践来保护节点应用程序安全,否则只有SSL不会发挥任何作用。

您可以将子域用于节点应用程序,并将根域用于实际站点。另外,通过在nginx配置文件中定义不同的服务器部分,您可以将80端口用于网站,将443端口用于节点应用程序。

下面是一些链接,您可以在其中找到在生产上部署节点应用程序时要遵循的最佳实践。

答案 1 :(得分:1)

我想说Nginx通过SSL证书暴露于世界,所有流量都重定向到端口443。

所有其他内容都绑定到127.0.0.1,并通过Nginx进行代理。设置Nginx来接受对端口443上的api.website.com的请求,然后将它们代理到127.0.0.1:3000或3001或其他任何东西,都很简单。

然后对所有其他随机端口进行防火墙,并绝对通过Nginx路由所有传入流量。