Configuration générale de nginx et configuration en reverse proxy
Installation
apt install nginx
Généralités
nginx -t : vérifie la syntaxe des fichiers de conf
nginx -s reload : recharge les fichiers de conf
:## Main server (vhost) definition
server {
listen 8080 default_server; # port and defining it as default server
# listen 443 ssl default_server; # for SSL
root /var/www/html; # root directory
index index.html index.htm index.nginx-debian.html; # filenames it might search
server_name _; # URL it will respond to ; _ is default
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Reverse proxy
https://www.freecodecamp.org/news/docker-nginx-letsencrypt-easy-secure-reverse-proxy-40165ba3aee2/
Pour rediriger une requête vers un hôte différent
upstream my-service {
server my-service-hostname:8080;
}
server {
listen 8080;
server_name my-service.example.com;
location / {
proxy_pass http://my-service;
}
}
La directive server sert à définir le cas dans lequel la configuration est utilisée : on écoute sur le port 8080, on répond aux requêtes qui demandent my-service.example.com, et dans le cas où on demande l’URL / (ou à un niveau plus bas, du genre /truc/bidule.html, donc dans ce cas précis tous les chemins).
Dans ce cas, via proxy_passon passe la requete à l’hôte (défini via “upstream”) my-service.
La directive upstream sert à définir un hôte contactable par nginx ; il est nommé (dans nginx uniquement) my-service et est accessible via son adresse IP ou nom d’hôte : hostname:port
https://www.linode.com/docs/web-servers/nginx/use-nginx-reverse-proxy/
https://www.thepolyglotdeveloper.com/2017/03/nginx-reverse-proxy-containerized-docker-applications/