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_pass
on 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/