【问题标题】:Should I use docker (nginx) for serving a SPA?我应该使用 docker (nginx) 来提供 SPA 服务吗?
【发布时间】:2017-02-19 07:28:03
【问题描述】:

我只有 1 个 javascript 文件(由 webpack 打包的 bundle.js)和 1 个 html。这有点像SPA。 我在想我如何主持这个 SPA?我已经在 Amazon EC2 上有了一个干净的虚拟机。 我计划在这个 EC2 上设置一个 docker(Nginx)。然而,正如我所说,这个虚拟机是干净的。只有这个 SPA 会使用这个 EC2 虚拟机。 所以我对这种情况感到困惑。我应该使用 docker(nginx) 还是只在这个 EC2 上安装一个 Nginx 来服务这个 SPA?

【问题讨论】:

  • 如果您不打算拥有后端,则根本不应该使用 VM。您能否验证一下您可能只需要 S3 静态 Web 托管?
  • 是的。 S3 绝对可以帮助我。但是,有一天我可能会更改服务提供商(AWS)。所以,我更喜欢使用VM的传统方式。我只是想知道在这个简单的案例中是否需要 Docker。

标签: amazon-web-services nginx docker containers single-page-application


【解决方案1】:

AWS S3 服务可以处理静态文件,您只需要将文件上传到存储桶,然后将它们公开并记下公共 URL。

附带说明,容器化应用程序和使用微服务架构将为您带来优势,其中一些是:

  • 易于升级
  • 故障遏制
  • 易于技术变革
  • 提高安全性
  • 高效的资源利用

【讨论】:

  • 是的。我已经考虑过这个解决方案(S3)。但是,有一天我可能会更改服务提供商(AWS)。所以,我更喜欢使用VM的传统方式。我只是想知道在这个简单的案例中是否需要 Docker。
  • with docker:如果你计划软件升级,在你的情况下 nginx 更新到新版本,它会像拉取镜像一样容易,如果新版本失败,更快的回滚也是如此,它会让您的生活更轻松。您还可以在同一台机器上聚合多个应用程序,具有高度的隔离性。
【解决方案2】:

S3 对于静态文件来说足够便宜,与 EC2 相比几乎是免费的,除非你有后端。您可以将Cyberduck 用于 S3,如果您想在某一天使用 FTP,同样的应用程序将为您提供一个通用的用户体验来上传您的文件。

虽然 Docker 设置对于 IaaS 中的静态服务来说是过度工程,但您需要构建一个包含 nginx 和您的文件的映像,如 KyleAMathews/docker-nginx 项目。

【讨论】: