Deploiement Sites

De Breizh-Entropy
Aller à : navigation, rechercher


Website deploy (par Li2ne)

same page in markdown

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:

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

Wikipédia Proxy Inversé

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

Letsencrypt

Nginx simple

  • [Example de configuration] @TODO
  • [Script ansible] @TODO

Nginx en reverse proxy

  • [Example de configuration] @TODO
  • [Script ansible] @TODO

NodeJs

Haproxy