« Deploiement Sites » : différence entre les versions
m (ajout lien vers page profil de Li2ne) |
Aucun résumé des modifications |
||
Ligne 2 : | Ligne 2 : | ||
<big><big><big><big>Website deploy</big></big></big></big> | <big><big><big><big>Website deploy</big></big></big></big> | ||
(par [[User: | (par [[User:Li2ne]]) | ||
Version du 5 octobre 2016 à 15:47
Website deploy
(par User:Li2ne)
Simple
Installer un serveur nginx
Avec une configuration nginx basic pointant vers le dossier de son site, tout fonctionne. Cela suffit pour des sites tels que:
- Un site généré par pelican
- Un template bootstrap modifié à la main
- Tout autre site statique (html/css)
Avec quelques ajouts dans la configuration du vhost, on peut aussi faire tourner des sites PHP, Python ou autres.
Https avec letsencrypt
[1] nous permet de générer des certificats ssl autocertifiés. Grâce à ça, nos sites vont pouvoir crypter leurs requêtes.
letsencrypt devra renouveler les certificats au moins tous les 3 mois (durée de validité maximum).
Un peu plus compliqué: plusieurs serveurs web à la fois (node, nginx, gunicorn ...)
Mais pourquoi donc ?!
Nous avons différents sites qui utilisent différents serveurs web. Ces différents serveurs web ne peuvent pas tous écouter les port 80/443. Certains, comme le serveur wsgi gunicon, ne sont pas fait pour. On va avoir besoin d’un reverse proxy pour dispatcher tout ça.
À noter qu’utiliser un reverse proxy est aussi un moyen de sécuriser un peu mieux son serveur.
Une bonne stack
---
- Supervisor va lancer différents daemons (ngnix, gunicorne, node, etc) au démarrage/redémarrage du serveur. Ce programme nous permet de définir l’utilisateur du daemon et des variables d’environnement. Pratique.
---
- Nginx va écouter le port ```ngnix_server_port``` et aura une configuration pour chaque site ne nécessitant rien de particulier.
- Gunicorne écoutera les ports ```gunicorn_server_range_ports``` (un port par site) et fera tourner nos sites Django.
- NodeJs écoutera les ports ```node_server_range_ports``` (un port par site) et fera tourner nos sites NodeJs
- « Whatever serveur web » écoutera le port ```whatever_server_port``` pour faire tourner « whatever specific website »
---
- Le reverse proxy va écouter les ports 80 et 443 et diriger les requêtes entrantes vers le bon service (Ex: www.my_node_website.net > localhost:my_node_website_daemon_port)
---
Reverse proxy
Nginx
Nginx peut être utilisé en reverse proxy. Il écoutera le port 80 et redirigera les différentes requêtes vers le port approprié (qui peu être ```ngnix_server_port``` lui même s’occupant de rendre différents sites).
Haproxy
Haproxy est un load balancer : il trie les requêtes entrantes et les assigne à une (ip|host):port donnée. En cela il peut être utilisé en reverse proxy bien que ce soit surement un peu overkill.
Références pour installer / configurer tout ça.
Supervisor
- Exemple de configuration @TODO
- [Script ansible] @TODO
Letsencrypt
Nginx simple
- [Example de configuration] @TODO
- [Script ansible] @TODO
Nginx en reverse proxy
- [Example de configuration] @TODO
- [Script ansible] @TODO