Afficher/cacher Sommaire
http/2
L’enjeu du protocole HTTP/2 est de réduire le temps de téléchargement des pages, en permettant la parallélisation des requêtes.
Compilé nginx pour une version qui accepte le http2 (Nginx (compilation), PHP5 et PHP7 ,MariaDb )
Mise en place du nouveau binaire nginx
sudo -s
# Arrêt et sauvegarde binaire nginx 1.6.2
systemctl stop nginx
mv /usr/sbin/nginx nginx1.6.2
# copie du nouveau binaire nginx
cp /usr/share/nginx/sbin/nginx /usr/sbin/
# relance
systemctl start nginx
# Vérification version
nginx -V
nginx version: nginx/1.13.8
Il faut interdire la mise à jour par dpkg ou apt des paquets nginx
Liste des paquets concernés
dpkg -l |grep nginx
root@xeuyakzas:/home/yak# sudo dpkg -l |grep nginx
ii nginx-common 1.6.2-5+deb8u4 all small, powerful, scalable web/proxy server - common files
ii nginx-extras 1.6.2-5+deb8u4 amd64 nginx web/proxy server (extended version)
Les paquets nginx-common et nginx-extras ne doivent pas faire l’objet d’une mise à jour
sudo -s
echo "nginx-common hold" | dpkg --set-selections
echo "nginx-extras hold" | dpkg --set-selections
Pour avoir la liste des paquets bloqués
dpkg --get-selections | grep hold
nginx-common hold
nginx-extras hold
Utiliser le protocole HTTP/2
HTTP/2 (supporté depuis la version nginx 1.9.5) va vous permettre de gagner du temps au niveau des états d’attente car plusieurs ressources pourront être directement déchargées dans le même flux de réponse HTTP.
Afin de vous assurer que HTTP/2 est bien activé sur votre serveur, je vous invite à taper nginx -V afin de vous assurer que vous disposiez bien de l’option de compilation –with-http_v2_module ainsi qu’à vérifier que votre version d’OpenSSL utilisée par nginx est récente.
Il vous suffit simplement de spécifier dans l’attribut listen que vous souhaitez utiliser : « http2 »
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
...
nginx -t
systemctl restart nginx
Passage http/2 de tous les fichiers conf
find /etc/nginx -name "*.conf" -type f -exec sed -i "s#443 ssl;#443 ssl http2;#g" {} \;
Clé Diffie-Hellman
Générer une clé Diffie-Hellman
sudo openssl dhparam -out /etc/ssl/private/dh4096.pem -outform PEM -2 4096
Clé sous /etc/ssl/private ,propriétaire et droits
sudo chown root.ssl-cert /etc/ssl/private/dh4096.pem
sudo chmod 640 /etc/ssl/private/dh4096.pem
Modifier les fichiers de configuration des différents domaines activer Diffie-Hellmann ssl_dhparam /etc/ssl/private/dh4096.pem;
find /etc/nginx -name "*.conf" -type f -exec sed -i "s:#ssl_dhparam /etc/ssl/private/dh2048.pem;:ssl_dhparam /etc/ssl/private/dh4096.pem;:g" {} \;
Vérifier syntaxe
sudo nginx -t
Recharger nginx
sudo systemctl reload nginx