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玩得开心!

我肯定会隔离每个应用程序。

为什么?

如果他们根本不相互依赖,那么在一个应用程序中进行更改可能会影响另一个应用程序,只是因为他们在同一个环境中运行,而不希望所有这些应用程序同时出现问题。