Memo nginx
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