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