Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php、AngularJS、Nginx和Mysql的最佳Docker体系结构是什么_Php_Angularjs_Docker_Nginx - Fatal编程技术网

使用php、AngularJS、Nginx和Mysql的最佳Docker体系结构是什么

使用php、AngularJS、Nginx和Mysql的最佳Docker体系结构是什么,php,angularjs,docker,nginx,Php,Angularjs,Docker,Nginx,我有一个AngularJS/PHP7/MySQL应用程序,我想改进它的架构。实际上,它目前运行在单独的docker容器中 分别使用Angular JS和PHP创建前端和后端的一个容器。 数据库的一个容器 我希望改进此设置并实现以下目标: 一个带有NGINX的容器:端口80443 一个带有节点和my AngularJS前端的容器:端口4200 一个容器apache还是php fpm?使用我的后端PHP:81端口 一个带有MySQL的容器:端口3306 更广泛地说,前后分开是件好事吗?用于以后的缩放

我有一个AngularJS/PHP7/MySQL应用程序,我想改进它的架构。实际上,它目前运行在单独的docker容器中

分别使用Angular JS和PHP创建前端和后端的一个容器。 数据库的一个容器 我希望改进此设置并实现以下目标:

一个带有NGINX的容器:端口80443 一个带有节点和my AngularJS前端的容器:端口4200 一个容器apache还是php fpm?使用我的后端PHP:81端口 一个带有MySQL的容器:端口3306 更广泛地说,前后分开是件好事吗?用于以后的缩放问题?我将使用什么样的工具来解决这些缩放问题?Docker Swarm,Kubernetes


我不知道这是不是个好办法。你能帮我选择这个应用程序的正确路径吗?对不起我的英语,我不是本地人。谢谢

我认为您需要首先研究Docker Compose的基础知识,而不是直接深入部署。这将帮助您了解如何部署多容器应用程序及其背后的基本思想。根据您的场景,docker compose允许您定义NGINX容器、Angular JS容器(前端)、PHP容器(后端)和MySQL DB容器,以及它们所运行的端口,还可以定义覆盖网络,您可以按容器进行分离。请参阅下面的参考资料,在第3个链接中,您还可以访问Docker Compose文件,该文件定义了与当前设置完全相同的配置,只需在掌握基本知识后参考即可

当它进入Docker Swarm和Kubernetes时,它们是容器编排平台。这两种方法都允许您在集群中运行容器,这意味着您可以复制运行每个服务的容器的数量。这里的服务意味着您的一个容器,即NGINX容器,以使它们高度可用。假设您的一个NGINX容器出现故障,并且您已定义在Docker Swarm或Kubernetes群集上运行3个NGINX容器,并且您的用户不会受到影响,尽管您的一个NGINX容器出现故障,因为还有另外两个容器在运行。Docker Swarm和Kubernetes之间存在一些差异,在掌握了这些基本知识之后,您可以决定使用什么工具。如果你从docker compose开始,进入docker Swarm会有点容易

此外,我还添加了一个答案,解释了Docker Swarm在类似您的场景中的使用,请阅读它,以便了解如何使用Docker Swarm部署您的应用程序