Usine

Un wiki à l'usine !

Outils pour utilisateurs

Outils du site


frontal_web

Ceci est une ancienne révision du document !


Frontal web (reverse proxy) chiffrant avec nginx

On utilise nginx (du paquet Debian nginx-light).

Utilisé en parallèle avec Let's Encrypt.

Modifications de configuration

Décommenter server_names_hash_bucket_size 64; car très vite nécessaire.

Problèmes de buffering :

        # buffering causes issues, disable it
        # increase buffer size. still useful even when buffering is off
        proxy_buffering off;
        proxy_buffer_size 4k;

VHosts reverse-proxy

On utilise un petit script qui va générer les fichiers de configuration à partir d'un template. Comme cela, une modification du template sera bien répercutée partout. Au cas où un site aurait besoin d'une configuration spécifique, le template inclue des paramétrages supplémentaires (dans un nouveau dossier /etc/nginx/sites-customizations/) si existants.

Nous avons mis notre partie spécifique dans /etc/nginx/usine.

/etc/nginx/usine/vhost.tpl
server {
    listen                  80;
    listen                  [::]:80;
    server_name             %SERVERS%;
    include                 conf.d/acme.inc;
    include                 conf.d/redirect_https.inc;
    access_log              /var/log/nginx/vhosts/%FIRST_SERVER%/access.log main;
    error_log               /var/log/nginx/vhosts/%FIRST_SERVER%/error.log error;
}
 
server {
    listen                  443 ssl http2;
    listen                  [::]:443 ssl http2;
    server_name             %SERVERS%;
    ssl_certificate         /etc/letsencrypt/live/%FIRST_SERVER%/fullchain.pem;
    ssl_certificate_key     /etc/letsencrypt/live/%FIRST_SERVER%/privkey.pem;
 
    include /etc/nginx/conf.d/ssl-params.inc; # SSL parameters;
 
    location / {
        include     conf.d/proxy_set_headers.inc;
        proxy_pass  %PROXY%;
    }
 
    access_log              /var/log/nginx/vhosts/%FIRST_SERVER%/access.log main;
    error_log               /var/log/nginx/vhosts/%FIRST_SERVER%/error.log error;
 
    include /etc/nginx/sites-customizations/%FIRST_SERVER%.*.conf
}

Et le petit script de génération :

/etc/nginx/usine/gen.sh
#!/bin/sh
 
cat proxy-list | while read p; do
  proxy=$(echo $p | cut -d ' ' -f1)
  servers=$(echo $p | cut -d ' ' -f2-)
  first_server=$(echo $p | cut -d ' ' -f2)
  conf=/etc/nginx/sites-available/$first_server.conf
  cp vhost.tpl $conf
  sed -i "s~%PROXY%~$proxy~g" $conf
  sed -i "s~%SERVERS%~$servers~g" $conf
  sed -i "s~%FIRST_SERVER%~$first_server~g" $conf
 
  mkdir -p /var/log/nginx/vhosts/$first_server/
done

Exemple de ligne de la liste des proxy dans le fichier /etc/nginx/usine/proxy-list :

http://192.168.1.71:80 wiki.usine.michalon.eu

Ajout d'un nouveau VHost

Procédure :

sudo certbot --rsa-key-size 4096 --nginx -d mon-super-domaine.rocks
 
cd /etc/nginx/usine
 
sudo nano proxy-list
=> rajouter le proxy
 
sudo ./gen.sh
 
sudo ln -s /etc/nginx/sites-available/mon-super-domaine.rocks.conf /etc/nginx/sites-enabled/
 
sudo service nginx reload
frontal_web.1611322118.txt.gz · Dernière modification : le 22/01/2021 à 13h28 de infrarangers