Web Public - MaximeDanlee/admin2-projet GitHub Wiki

Analyse Web Public

Besoins techniques

Le client "WoodyToys" souhaite avoir un site web vitrine avec l'adresse "www.woodytoys.be". Il demande également un second site connecté a une base de donnée pour ces revendeur, ce site sera accessible par le nom de domaine "b2b.woodytoys.be". Pour répondre à ce besoin, nous avons besoin des éléments suivants :

  • Un serveur ayant une connection à internet et accessible publiquement depuis internet,
  • Un logiciel web permettant de contenir au moins 2 sites web,
  • Un logiciel permettant la gestion de bases de données,
  • Un logiciel permettant la gestion des api,
  • Une indication sur internet pour trouver l'adresse des sites (DNS).

Identification et comparaison des solutions disponibles

  • Appache : Le logiciel libre Apache HTTP Server est un serveur HTTP créé et maintenu au sein de la fondation Apache, Appache est conçu pour prendre en charge plusieurs modules lui donnant des fonctionnalités en plus: interprétation de langage , serveur proxy, configuration de serveur.
  • Ngnix : NGINX Open Source ou NGINX est un logiciel libre de serveur Web ainsi qu'un proxy inverse.

Comparatif

La plus grande différence entre Apache et nginx repose sur le design architectural. Ils se discernent par leurs moyen de traiter les connexions, des données sur le trafic et de répondre aux différentes conditions des serveurs. Appache propose une a approche basée sur les processus tandis que nginx opte plus sur une approche basée sur les évènements. Contrairement à Apache, Nginx est moins gourmand en consommation de mémoire et le fait qu'il travaille en asynchrone permet de traiter plus de requêtes à la seconde, même si Nginx n’a pas de système de configuration comme Apache donc, bien qu’il soit beaucoup plus efficace et rapide, ce dernier est moins modulable.

# Apache NginX
Support support Unix Linux et Windows support tous les systèmes UNIX et Windows partiellement
Popularité Très populaire, considéré comme la solution standard pour un serveur web Très populaire, devient toujours plus populaire. Le nouveau standard...?
Performances Performant, mais pas léger pour le système. Ceci est dû à cause de la configuration décentralisé avec les fichiers .htaccess qu'on peut trouver dans tous les dossiers avec des pages statiques. Très performant gràce à l'implémentation des porcessus travailleurs. Connu pour être un programme très leger entre autres grâce à la configuration centralisée.
Documentation Documentation complète diponible en ligne Documentation disponible en ligne
Prix Gratuit Gratuit, possibilité d'avoir un service de la société NginX payant
Aide en ligne Beacoup d'aide en ligne, qui ça soit sur des forums ou des tutoriels Grâce à sa monté de popularité, aide en ligne fort disponible et souvent très pertinent. Expéreince personelle très positive avec l'aide en ligne.
Facilité de Configuration Facile à configurer, même si on configure en profondeur Assez simple à configurer mais peut devenir compliqué quand on doit commencer à développer des modules.

Solution choisie

La solution pour laquelle nous avons optée sera la solution Nginx. Nginx est réputé pour ses performances et sa faible consommation mémoire. Cela vient de son architecture : au lieu de dédier un processus ou un thread pour traiter chaque requête, il utilise un modèle événementiel. Cela lui permet notamment de tenir un grand nombre de connexions simultanées sans voir sa consommation mémoire s'envoler, des sites populaire comme github, wordpress l'ont choisi pour cette raison. Il est aussi l'un des serveurs web les plus populaire, qui permet de gérer un site web sécurisé sans trop de problèmes.

Installation

Installez l'image:

$ docker pull nginx

Créer notre image docker avec ubuntu et nginx d'installer grace au Dockerfile

$ docker build -t webserver .

Démarrer l'image docker web

$ docker run -it --rm -d -p 8080:80 --name web webserver

Redémarrer le service nginx

$ docker exec -it web service nginx restart

source : (https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/) (https://www.docker.com/blog/how-to-use-the-official-nginx-docker-image/)

Étapes de la configuration

Étapes de configuration :

  • installer ubuntu et nginx

  • créer un fichier pour chaque site dans /etc/nginx/html

  • copier les fichiers html / css / ... dans le fichier du site

  • copier le fichier nginx.conf dans le fichier /etc/nginx/nginx.conf

  • création de la base de données

  • Mise en place du service php

  • installer et configurer le serveur MySQL

  • mettre/changer mot de passe

  • enlever l'accès anonyme

  • enlever l'accès root depuis d'autre utilisateur

Sources