Skip to content

Analyse_WEB

FirminMoyen edited this page Aug 25, 2022 · 4 revisions

Besoins Techniques

Le client souhaite une page web publique statique ainsi qu'une page web b2b dynamique qui interragit avec une base de donnée MySql.

Pour cela, il faut mettre en place un server web qui fera du virtual hosting sur le nom ainsi que mettre en place la base de donnée.

Identification et comparaisons des solutions possibles

Descriptif des solutions possibles

  • Apache : il s'agit d'un web servur gratuit et open source, lancé en 1995, il est aujourd'hui maintenu par la Apache Software Foundation (ASF). c'est un des web servers les plus populaire avec environ un tiers des parts de marché dans le monde. Apache est une solution hautement flexible et customisable, des fonctionnalité peuvent etre faliment activées ou désactivées. de plus, il supporte une multitude d'outils de sécurité comme le fichier .htaccces, la reécriture URl etc...

  • NGINX est un web server gratuit et open source sortis en 2004. il est devenu un des web serveur les plus utilisé grace a sa capacité a gerer un trafic tres important. Grace a sa gestion du probleme c10k il peut gerer plus de 10 000 connections en simultané.

  • Microsoft IIS est un web servur sorti en 1995, son architecture modulaire permet de facielemtn rajouter ou enlever des extentions/modules. il supporte aussi de multiples outils pour la sécurité. Cependant il a été developé pour tourner sur windows ce qui le rend innutilisable dans le cadre de ce projet.

  • LiteSpeed est un serveur web payant et proprietaire, developé par LiteSpeed Technologies et sorti en 2003. ce web serveur est optimisé pour gerer des milliers de connections en meme temps sans pour autant consommer trop de RAM ou de CPU. il permet aussi le support de nombreux outils de sécurité.

Comparaison différentes solutions

Noms Web server Open Source Popularité Gratuit Documentation Plateforme
Apache 2 Oui Très répendu Oui Très Riche Linux
NGINX Oui Le plus populaire Oui Riche Linux
Microsoft IIS Non Moyenement répendu Oui Riche Windows
LiteSpeed Non Peu répandu Non Acceptable Linux

Choix, descriptif et justification de la solution :

Pour la mise en place de ce server web, nous avons décidé d'utiliser Apache 2 car il sera largement suffisant pour ce projet ou nous ne devront pas gerer des milliers de connections simultanées. Il semble relativement simple a configurer et que la documentation est exellente. De plus, sa flexibilité nous permetra de gerer plus facilement le php par exemple. Le tres bon support pour les outils de sécurité est aussi un element décisif.

Quand à la base de donnée, MySql nous est imposé.

limitation de la solution choisie :

Apache a deux desaventages principaux, le premier c'est que les performances se dégradent sur les pages a fort trafic, en particulier apres plus de 10 000 conections simmultanées. Le second c'est que l'utilisation de ses nombreux modues peut générer des failles de sécurité si les modules ne sont pas géré correctement.

Mode de fonctionnement :

Le server web doit se trouver dans la DMZ alors que la base de donnée quant a elle, se trouve dans l'intranet.

La logique du fonctionnement du server Web pour la page statique www :

  • le nom de domaine est traduit en adresse IP grace au DNS
  • une requete Get est fait sur cette addresse IP
  • si la requete est fait en HTTP (:80), elle sera automatiquement redirigée en HTTPS (:443)
  • le server renvoit la page qui est affichée dans le navigateur

logique de fonctionnement pour la page dinamique b2b :

  • le nom de domaine est traduit en adresse IP grace au DNS
  • une requete Get est fait sur cette addresse IP
  • si la requete est fait en HTTP (:80), elle sera automatiquement redirigée en HTTPS (:443)
  • le server web va chercher les informations demandées dans la base de donnée qui est dans l'intranet sur le port :3306
  • le server renvois la page avec les informations pour être affichée dans le navigateur

Elements de configuration :

Etapes à suivre pour la configuration du Server Web :

  • installer tous les outils nécessaires : docker-php-ext-install mysqli && docker-php-ext-enable mysqli.
  • Créer les fichiers HTML et PHP des sites web.
  • créer les fichier de config de ces sites web.

Etapes à suivre pour la configuration de la DB :

  • Installer MySql
  • Créer le fichier SQL de la DB

Moyen Firmin