« Memo nginx » : différence entre les versions

De Justine's wiki
Aller à la navigation Aller à la recherche
(Page créée avec « = NGINX = Installation / désinstallation <pre># Installation sudo apt install nginx # Déinstallation sudo apt remove nginx # Déinstallation avec suppression des fic... »)
 
Aucun résumé des modifications
 
Ligne 1 : Ligne 1 :
 
[[Category:cheatsheet]]
= NGINX =
= NGINX =



Dernière version du 22 juin 2022 à 10:04

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