【发布时间】:2018-12-08 15:12:51
【问题描述】:
我知道这是主观的和固执的,但我只需要从了解最佳实践可能是什么开始。
我有一个 MERN 应用程序在 localhost 上运行,React 脚本当前在端口 3000 上运行,Express.js 应用程序在端口 3001 上运行。
现在我要在 AWS 上实时设置它,我想知道我是否应该像这样创建它:
website.com 用于前端 React 东西,使用 nginx 路由从端口 80 到 3000 的任何内容,同时它调用 api.website.com 在同一实例上运行在 3001 上,website.com 和 `api.website.com 具有相同的 IP地址。
或
website.com 的一个单独实例在不同的 IP 地址上,api.website.com 的另一个实例在不同的 IP 地址上用于 API 调用?无需指定端口即可访问两者。
我很好奇,因为大多数时候我都使用 API,它们没有单独的端口,只有一个子域,我认为是不同的 IP 地址和不同的实例。
记住我想使用 SSL,最好的设置方法是什么?
【问题讨论】:
-
当你说“最好的方法”时,你需要改变你的 q 并且更具体。 AWS 解决方案有很多最佳实践:您想要经济高效吗?如果是这样,您的 MERN 堆栈可能会利用 S3,具体取决于您的应用程序正在执行的操作(照片或图像)的性质 ssl 是给定的,但更安全?加密传输中的静态数据?自动缩放? - 你希望它在交通繁忙时嗡嗡作响吗?高度可用?如果一个 AZ 出现中断,您是否需要该应用程序保持正常运行?许多人会认为这个 q 过于宽泛 - 所以请提供更多信息,我们会提供帮助。
-
其他需要考虑的问题:您的 MERN 应用 - 您是否想尝试一下以测试可行性?或者您是否 100% 确定您现有的架构,并且会在明年或两年内继续使用该架构?这个应用程序是否已经在运行并为用户/客户提供服务?如果是这样,您的流量是什么样的,您当前的服务器是否处于重负载/使用情况下?哪个资源:内存?过程?网络 ?贮存?还添加这些详细信息并提供数字(如果有)。
标签: express nginx amazon-ec2 mern