Ft_server

Skills

  • System administration
  • Docker
  • Containerization
  • Nginx Configuration
  • SSL/TLS Management
  • WordPress Deployment
  • MySQL Administration
  • Database Management
  • PhpMyAdmin Setup
  • Dockerfile scripting

Project Overview

Ce projet vise à mettre en place un environnement complet de serveur web en utilisant Docker, dans le but d'apprendre l'administration système et les pratiques de conteneurisation. Ce projet 42 m'a permis de déployer un conteneur Docker unique exécutant plusieurs services, dont Nginx, WordPress, PhpMyAdmin et MySQL. J'ai donc pu configurer un serveur web Nginx dans un conteneur Docker fonctionnant sous Debian Buster. Le serveur sert à gérer le trafic HTTP et HTTPS et administrer plusieurs services, il a donc été question de configurer SSL/TLS pour sécuriser les connexions du serveur. Cela induit la génération et l'installation de certificats pour activer HTTPS. L'intégration de Wordpress au serveur pour la gestion de contenus inclut la configuration de Wordpress pour se connecter à la base de données MySQL et assurer son accès via le serveur web. Le déploiement de PhpMyAdmin dans le conteneur a permis de fournir une interface graphique de gestion de la base de données MySQL, facilitant les tâches d'administration. MySQL a permis de fournir une base de données pour Wordpress et garantir son intégration avec les autres services.

Definitions

  • Docker : Docker est une plateforme de conteneurisation qui permet de créer, déployer et exécuter des applications dans des conteneurs. Il fournit un environnement isolé et cohérent pour chaque application, facilitant la gestion des dépendances et des configurations.
  • MySQL : MySQL est un système de gestion de bases de données relationnelles open source, largement utilisé pour stocker, gérer et manipuler les données dans des applications web. Il est connu pour sa robustesse et sa fiabilité dans le traitement des transactions.
  • PhpMyAdmin : PhpMyAdmin est une interface web open source pour la gestion des bases de données MySQL. Il offre une interface graphique permettant d'effectuer des tâches administratives telles que la création de bases de données, la gestion des utilisateurs et l'exécution de requêtes SQL de manière conviviale.
  • Nginx : Nginx est utilisé comme serveur web et proxy pour servir le contenu de WordPress et gérer les demandes HTTP/HTTPS. Pour info, environ 33% à 35% des sites webs dans le monde l'utilisent, notamment des entreprises majeures comme Netflix et GitHub. La raison est que Nginx utilise un modèle d'événement asynchrone et non-bloquant, ce qui lui permet de gérer des milliers de connexions simultanées avec une faible consommation de ressources, ce qui est idéale pour les plateformes à fort trafic.
  • WordPress : WordPress est un système de gestion de contenu (CMS) open source populaire, utilisé pour créer des sites web, des blogs et des applications en ligne grâce à une interface utilisateur intuitive conviviale pour la création de contenus. Je l'ai déployé comme conteneur pour fournir une plateforme de gestion de contenu dynamique.
  • HTTPS : extension du protocole HTTP, utilisant TLS (ou SSL) pour sécuriser la communication entre un navigateur web et un serveur web.
  • Certificats SSL/TLS : Les certificats SSL/TLS sont utilisés pour sécuriser les communications entre un serveur web et un client en chiffrant les données échangées. Ils garantissent que les informations transmises sont protégées contre les interceptions et les attaques, et permettent de passer du protocole HTTP au protocole HTTPS.