Memo nginx

De Justine's wiki
Aller à la navigation Aller à la recherche

NGINX

Installation / désinstallation

# Installation
sudo apt install nginx

# Déinstallation
sudo apt remove nginx

# Déinstallation avec suppression des fichiers de configuration
sudo apt purge nginx

Commandes de configuration

Activer un site

Les sites disponibles se trouvent dans le répertoire /etc/nginx/sites-available/.

ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/

# Exemple
ln -s /etc/nginx/sites-available/exemple.org.conf /etc/nginx/sites-enabled/

Vérifier la validité de la configuration

nginx -t

Démarrer NGINX

systemctl start nginx

Stopper NGINX

systemctl stop nginx

Redémarrer NGINX

systemctl restart nginx

Recharger NGINX

systemctl reload nginx

Fichiers de configuration

Exemple de VirtualHost basique avec HTTPS et PHP-FPM

server {
        listen 80;
        listen [::]:80;

        server_name www.exemple.org exemple.org web.exemple.org;

        root /var/www/exemple.org;

        index index.php index.html index.htm index.nginx-debian.html;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name www.exemple.org exemple.org web.exemple.org;

        ssl_certificate      /etc/ssl/certs/exemple.org_cert.pem;
        ssl_certificate_key  /etc/ssl/private/exemple.org_privkey.pem;

        root /var/www/exemple.org;

        index index.php index.html index.htm index.nginx-debian.html;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

Sécuriser davantage la configuration

Mozilla fournit un générateur de configuration TLS qui permet d'avoir facilement une sécurité convenable. Il faut savoir que plus vous durcissez la configuration TLS de vos sites, plus ceux-ci deviennent inaccessibles aux vieux clients. En fonction de votre contexte et votre modèle de menace, il va vous falloir trouver le bon compris entre sécurité renforcée et accessbilité.
https://mozilla.github.io/server-side-tls/ssl-config-generator/


Si vous voulez durcir vos configurations TLS au maximum, BetterCrypto fournit un papier indiquant les paramètres à mettre en place pour différents services (Apache, NGINX, Postfix, Dovecot, etc.).
https://bettercrypto.org/static/applied-crypto-hardening.pdf


Si vous voulez tester la robustesse de votre configuration TLS, vous pouvez utiliser l'outil de de testssl.sh.
https://testssl.sh/testssl.sh