使用Docker Compose在Nginx Reverse Proxy后面部署React应用程序

4uqofj5v  于 12个月前  发布在  Nginx
关注(0)|答案(1)|浏览(155)

我需要部署一个docker compose项目,其中包括几个服务(两个API,数据库和其他)。为了将这两个API暴露给网络,我配置了一个Nginx容器作为反向代理。
我还需要公开一个在React中开发的Web App,因此会产生一个完全静态的构建。
由于Docker Compose中的所有其他服务都由一个单独的项目组成,该项目拥有自己的GitHub存储库,并拥有自己的管道来构建Docker镜像并将其推送到注册表,因此我想为React App做同样的事情。
我应该构建一个自定义的Nginx镜像,包括容器中的React App文件,然后让Nginx执行反向编译,同时也为Web App的文件提供服务,还是应该将React App部署为具有自己的HTTP服务器的Docker镜像,并让Nginx代理请求到新容器,就像我对其他服务所做的那样?
秒解决方案似乎更好,因为它允许我将React应用程序视为“服务之一”,但我担心它可能会毫无用处地复杂和/或性能低下。
谢谢你,谢谢

pbwdgjma

pbwdgjma1#

这两种方法都是有效的,具体选择取决于您的具体要求。
方法1:Nginx提供React应用文件

优点:

简单性:单个Nginx容器同时服务API请求和静态文件。一致性:类似地处理所有服务。缺点:
性能:与专门的Web服务器相比,Nginx在服务静态文件方面的性能可能较差。

方法二:为React App分离Docker镜像
优点:

隔离:每个服务都在自己的容器中,以实现更高的隔离。可扩展性:允许独立扩展React App。缺点:
复杂性:管理多个容器可能会带来复杂性。资源开销:运行单独的HTTP服务器可能会带来一些资源开销。

  • 建议:如果您优先考虑简单性和一致性,请选择方法1。如果您优先考虑服务隔离和可伸缩性,请选择方法2。测试和监控以确保性能满足您的要求。*

相关问题