Partie 7 — Nginx : le reverse proxy
⏱️ TL;DR — Ton app Node ou Next tourne sur
127.0.0.1:3000, ta base est branchée, mais personne d’Internet ne peut y accéder proprement. Il manque la porte d’entrée web : Nginx. C’est le reverse proxy — la façade qui écoute sur les ports 80 et 443, sert les fichiers statiques à toute vitesse, relaie le reste vers ton ou tes apps locales, et centralise le TLS, la compression, le cache et les logs. Cette partie t’apprend à l’installer, à comprendre sa structure de fichiers Debian/Ubuntu, à servir du statique, à proxifier une app, à héberger plusieurs sites sur une seule IP, et à régler perf et logs. À la fin, Nginx est en façade et sert le front et l’API de FormaCampus.
Le problème qu’on résout
Jusqu’ici, ton app écoute sur un port privé (127.0.0.1:3000). C’est très bien pour développer, mais inexploitable en prod : un visiteur tape formacampus.fr sur le port 443, pas :3000 sur une IP nue. Tu pourrais faire écouter Node directement sur le port 80 — mauvaise idée, et le chapitre 7.1 explique pourquoi (root, TLS, sécurité, un seul processus par port…).
La bonne architecture, universelle en prod, c’est une façade devant l’app : un serveur web spécialisé qui reçoit tout le trafic public, gère le HTTPS, sert les fichiers statiques efficacement, et transmet les requêtes dynamiques à l’app qui, elle, reste bien au chaud sur son port local. Ce serveur de façade, dans ce cours, c’est Nginx.
Ce que tu sauras faire à la fin de cette partie
- Expliquer le rôle d’un reverse proxy et pourquoi on n’expose jamais Node ou Next directement.
- Installer Nginx, comprendre son service et son arborescence Debian/Ubuntu (
sites-available,sites-enabled,nginx -t). - Servir un site statique ou une SPA avec les bons
try_files, cache et droits. - Proxifier une app Node/Next avec les bons en-têtes (
Host,X-Forwarded-*) et le support des WebSockets. - Héberger plusieurs sites et sous-domaines sur un seul VPS avec des
serverblocks distincts. - Régler la compression, le cache,
client_max_body_size, et lire les logs pour déboguer un 502, 504 ou 413.
Les chapitres
| # | Chapitre | En un mot |
|---|---|---|
| 7.1 | Pourquoi un reverse proxy | Le rôle de la façade, et pourquoi ne pas exposer l’app. |
| 7.2 | Installer & structurer Nginx | Le service, l’arborescence, nginx -t, le premier server. |
| 7.3 | Servir du statique | root, try_files, SPA, cache des assets, droits. |
| 7.4 | Proxy vers une app | proxy_pass, en-têtes, WebSockets, timeouts. |
| 7.5 | Vhosts multi-sites | Plusieurs domaines et sous-domaines sur une IP. |
| 7.6 | Perf, cache & logs | Gzip, cache, uploads, logs, et déboguer les 5xx. |
Cette partie te donne la façade web. La Partie 8 — HTTPS avec Let’s Encrypt viendra ensuite chiffrer cette façade et brancher les certificats gratuits sur les server blocks que tu auras écrits ici.
On commence : Pourquoi un reverse proxy.