启动Docker容器来处理HTTP请求

我正在构build一个Web应用程序,供用户pipe理项目中的文件。 每个用户可以有多个项目,每个项目可以有多个文件。 我已经实现了这个使用Docker,其中每个项目是一个Docker卷。 当用户单击Web应用程序界面中的button修改其项目中的文件时,Web服务器configuration并启动一个工作者(这是另一个Docker实例)来修改Docker卷中的文件。 迄今为止,这一切都很好。

但是,现在我想通过HTTP提供这些项目文件。 我想到的策略是:

  1. Web服务器(如nginx)接受来自用户的传入HTTP请求
  2. Web服务器检查传入请求以确定正在请求哪个项目。 例如,如果URL是sparkle-pony.myapp.com ,那么我们知道正在请求sparkle-pony项目。 如果这个项目不存在,nginx响应404 Not Found响应。
  3. Web服务器还检查用户是否已login,以及login的用户是否有权查看项目。 否则,Web服务器将响应403 Forbidden HTTP响应。
  4. Web服务器configuration并启动一个新的Docker容器,可能是另一个nginx进程。 部分configuration包括将正确的Docker卷安装到新容器上。 我们将这个新启动的容器称为“内部”容器,将现有容器称为“外部”容器。
  5. 外部容器将这个HTTP请求转交给内部容器,或者作为内部容器响应的代理。
  6. 内部容器可以访问项目的正确Docker卷,并确保请求用户拥有正确的权限,从而检查URLpath并从D​​ocker卷提供正确的项目文件。 请求被妥善处理后,内部容器closures。

所以,尽pipe如此,我有三个问题:

  1. 这是一个合理的策略? 它确实涉及启动一个新的Docker容器为每个传入的HTTP请求,但我认为没关系…
  2. 将HTTP请求从一个容器转交给另一个容器的最佳方式是什么? 还是外部容器必须代理来自内部容器的响应?
  3. 有人可以提供一些指针或如何设置这样的项目的例子? 有可能是我还不知道的一些工具或技术。

谢谢!