2017-07-27 3 views
0

Selon vous, quelle est la meilleure pratique pour exécuter plusieurs sites Web sur la même machine, auriez-vous des conteneurs distincts pour chaque site Web/domaine? Ou avez tous les sites dans le jeu d'un conteneur?Meilleures pratiques Docker pour la gestion des sites Web

Site 1, le site 2, le site 3:

  • nginx
  • phpfpm
  • mysql

ou

Web 1:

  • nginx_1
  • phpfpm_1
  • mysql_1

Site 2:

  • nginx_2
  • phpfpm_2
  • mysql_2

Site Web 3:

  • nginx_3
  • phpfpm_3
  • mysql_3
+0

Ne pouvez-vous pas exécuter un seul proxy inverse nginx en parlant à phpfpm en utilisant 'fastcgi_pass'? – Grimmy

Répondre

2

Je préfère utiliser des conteneurs séparés pour les sites Web individuels, mais utiliser un seul serveur Web comme proxy. Cela vous permet d'accéder à tous les sites Web de différents domaines sur les mêmes ports hôtes (80/443). De plus, vous n'avez pas nécessairement besoin d'exécuter plusieurs conteneurs nginx.

Structure:

  • Proxy
    • nginx (écoute au port 80/443)
  • Site 1
    • phpfpm_1
    • mysql_1
  • Site 2
    • phpfpm_2
    • mysql_2
  • ...

Vous pouvez utiliser automatisé génération de configuration pour le service proxy, comme jwilder/nginx-proxy qui ouvre aussi la façon d'utiliser la gestion pratique de la certification SSL avec par exemple jrcs/letsencrypt-nginx-proxy-companion.

Le service proxy peut alors ressembler à ceci:

  • Proxy
    • nginx (écoute au port 80/443)
    • docker-gen (crée une configuration nginx sur la base des conteneurs de fonctionnement et services)
    • letsencrypt (crée des certificats SSL si nécessaire)
1

Eh bien, si elles ne sont pas liés, je les mettrais certainement pas dans la même machine ...

Même si vous avez un site Web avec nginx et mysql je voudrais tirer ces deux à part. Cela vous donne simplement plus de flexibilité, et c'est ce que propose Docker.

Bonne chance et amusez-vous avec Docker!

0

Je voudrais définitivement isoler chacune des applications.

Pourquoi? Si elles ne dépendent pas l'une de l'autre, apporter des modifications dans une application peut affecter l'autre simplement parce qu'elles fonctionnent dans le même environnement, et vous ne voudriez pas qu'elles rencontrent toutes des problèmes. immediatement.