Dockerpipe理网站的最佳实践
你认为在同一台机器上运行多个网站的最佳做法是什么,你会为每个网站/域设置单独的容器吗? 或者让一个容器中的所有网站设置?
网站1,网站2,网站3:
- nginx的
- phpfpm
- MySQL的
要么
网站1:
- nginx_1
- phpfpm_1
- mysql_1
网站2:
- nginx_2
- phpfpm_2
- mysql_2
网站3:
- nginx_3
- phpfpm_3
- mysql_3
我更愿意为单个网站使用单独的容器,但使用单个networking服务器作为代理。 这使您可以访问相同主机端口(80/443)上的不同域的所有网站。 另外你不一定需要运行多个nginx容器。
结构体:
- 代理
- nginx(监听端口80/443)
- 网站1
- phpfpm_1
- mysql_1
- 网站2
- phpfpm_2
- mysql_2
- …
您可以使用代理服务的自动configuration生成,例如jwilder / nginx-proxy ,也可以使用例如jrcs / letsencrypt-nginx-proxy-companion打开方便的SSL证书处理方式。
代理服务可以看起来像这样:
- 代理
- nginx(监听端口80/443)
- docker-gen(基于正在运行的容器和服务创build一个nginxconfiguration)
- letsencrypt(根据需要创buildSSL证书)
那么,如果他们不相关,我绝对不会把他们放在同一台机器上。
即使你有一个网站与Nginx和MySQL,我会把这两个分开。 它只是给你更多的灵活性,这就是Docker的全部。
祝你好运,并与Docker玩得开心!
我肯定会隔离每个应用程序。
为什么?
如果他们根本不相互依赖,那么在一个应用程序中进行更改可能会影响另一个应用程序,只是因为他们在同一个环境中运行,而不希望所有这些应用程序同时出现问题。