/ Serveur nginx, apache, php et mysql full docker

Créer un serveur Nginx + Apache + Php + MySql - avec Docker Partie 2

Voici le projet terminé sur github pour une overview ou pour les plus pressés d'entre vous.

L'Architecture de notre serveur

La dernière fois nous avons vu ce qu'était docker et ce qu'il permettait de faire. Pour mettre en place un serveur web avec Nginx en proxy, Apache en serveur web (avec Php), Mysql en base de données, nous avons besoin d'une architecture.
Comme on n'est pas des cochons, avant d’aller plus loin dans la mise en place de nos serveurs, nous allons tout d’abord définir proprement notre architecture sur papier (ou powerpoint smiley) !

Voici ce que je propose :

docker_architecture_sosnoob.com

Comme vous le constatez grâce à ce schéma d’architecture, on aurait un serveur ubuntu sur lequel tourneraient des containers docker et rien que des containers !

Le reverse-proxy Nginx

Je souhaiterai pour cette architecture mettre en place dans un premier temps un serveur Nginx qui va servir de “Reverse Proxy”, c’est-à-dire : rediriger toutes les requêtes client vers nos applications en fonction du domaine avec lesquelles elles ont exécuté. Il sera par conséquent le point d’entré sur notre serveur (serveur front).

nginx-reverse-proxy

Les serveurs d’applications

Chaque requête client sera redirigé par le proxy vers le bon serveur d’application. Dans notre cas : Apache + php ou NodeJS. Ces serveurs renverront alors la page web construite à afficher au client.

Les bases de données MySql et MongoDB

Les serveurs web accéderont aux containers docker des bases de données pour récupérer les données nécessaires à la construction de leurs pages web. On ajoutera plus tard une interface web qui permettra de visualiser plus simplement le contenu de nos bases de données.

Conclusion

Ce qui est intéressant de noter, c’est qu’avec cette architecture full docker, les changements dans notre configuration auront beaucoup moins d’impacts et de dommages collatéraux sur notre serveur. Une simple commande suffit à monter/démonter toute notre architecture 😄 !

Voilà tout pour cette première partie de création de notre serveur full docker. Je sais que cette partie vous a semblé longue et que vous mourrez d’envie de vous jeter dans le code ! Mais patience les amis, cette partie bien que très théorique est indispensable à notre projet. Procéder ainsi va nous éviter de longue réflexion et de retour en arrière une fois la tête dans le code.

Dans la prochaine partie, je vous propose de commencer à mettre en place l'architecture à proprement parler ! 😺

Zakaria Rachedi

Zakaria Rachedi

Apprendre sans oublier, c'est impossible. Alors, pourquoi ne pas immortaliser ses connaissances et en profiter pour les partager, tel a été mon souhait lors de la création de sosnoob.

Read More