Post

yunohost-compile-nginx-http2

yunohost-compile-nginx-http2

yunohost-compile-nginx-http2

Nginx compilé , http/2

Compilé nginx pour une version qui accepte le http2
Il faut interdire la mise à jour par dpkg ou apt des paquets nginx
Liste des paquets concernés

1
dpkg -l |grep nginx
1
2
3
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

1
2
3
  sudo -s
  echo "nginx-common hold" | dpkg --set-selections
  echo "nginx-extras hold" | dpkg --set-selections

Pour avoir la liste des paquets bloqués

1
dpkg --get-selections | grep hold
1
2
nginx-common					hold
nginx-extras					hold

Compilation Nginx

Mise en place du nouveau binaire nginx

1
2
3
4
5
6
7
8
9
10
11
    sudo -s
    # Arrêt et sauvegarde binaire nginx 1.6.2  
    systemctl stop nginx
    mv /usr/sbin/nginx .
    # 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.11.3

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 »

1
2
3
4
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ...
1
2
nginx -t
systemctl restart nginx
Cet article est sous licence CC BY 4.0 par l'auteur.