我已经为1台机器设置了。当前看起来像这样:
出于某些原因,我不喜欢此设置:
这就是为什么我想出另一种设计的原因:
主机上有一个nginx实例,它由certbot控制,并将所有流量重定向到docker容器。
每个react应用都位于单独的容器中,该容器具有用于服务静态文件的自己的nginx。
唯一公开的容器是“ nginx路由器”,它控制流量的分配方式。
我真的很喜欢这个设置,它很好并且模块化,但是可能会有两个问题:
答案 0 :(得分:1)
如您所见,容器在传统上应该是单进程的。还应避免混合主机/容器上下文,这实际上不是可维护/可扩展的解决方案。容器应尽可能无状态。
对于生产而言,您可能希望顶层(路由)是一些托管的负载平衡服务,该服务将为您处理SSL终止,可无限扩展且足够便宜(考虑到设置简便且无需维护)。在您的情况下,除非需要非常非常具体的功能,而您需要对某个部分进行完全手动控制,否则设置和维护会很痛苦。
如果可以的话,静态资产也应该托管在CDN的后面(如果您喜欢AWS,则可以使用S3 + CloudFront,但其他任何方法都可以使用)。
对于本地发展而言,谁在乎:-)绩效将不会很快成为问题。
此外,如果您真的想走这条路,那么您可能想要检查haproxy,如果您要做的只是基本路由,那么它比nginx轻巧得多。