logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 09-06-2018 01:17:09

root@rkn
Membre
Lieu : Grenoble
Distrib. : Debian 10 Apache2 HTTPS HTTP/2 BROTLI REDIS
Noyau : PROD: 4.19.37-5 (2019-06-19) x86_64
(G)UI : headless - aucun
Inscription : 24-02-2018
Site Web

Installer Brotli

Des chercheurs de Google viennent de présenter un nouvel algorithme de compression de données qui serait plus efficace de 26 % par rapport aux solutions existantes comme GZIP. Baptisée « Brotli », il s'agit d'une nouvelle méthode qui s’appuie sur une variété de techniques de traitement de données comme le « modelage contextuel de second ordre » ou la « réutilisation de codes entropiques ». On vas rester simple toutefois. Pour faire simple, la compression de données s’applique à de nombreux domaines informatiques, que ce soit pour le stockage de données, le traitement de contenu multimédia ou les flux web !!! Ce dernier cas m'intéresse tout particulièrement. Cela permet une nette accèlération de mes sites, surtout pour les terminaux mobiles.

giyo.png

Brotli - qui est totalement open source - ne se distingue pas seulement par sa performance. Il introduit également un nouveau format de données. Actuellement, le format le plus utilisé est « Deflate ». Il est utilisé en particulier pour les fichiers de type gzip ou PNG. Cet algorithme pourrait être implémenté dans nombre d’applications. Ce n’est pas la première fois que Google s’intéresse à la compression de données. Il y a deux ans, ses chercheurs ont publié un algorithme open source basé sur le format Deflate et baptisé « Zopfli ». Là encore, le nom s’inspire d’une variété de pain en Suisse allemande.

Une chose importante à noter est que les navigateurs ne supporteront que Brotli via HTTPS. En effet, certains anciens navigateurs (mandataires ) ne gèrent pas bien les nouveaux formats permettant l'activation des nouvelles fonctionnalités. Aujourd'hui, tous les navigateurs sont supposés supporter Brotli. Je ne rentrerais pas dans le details des Cyphers SSL de nos serveur, mais suivant la paranoia de l'admin, certains OS et certains mandataires peuvent être simplement rejetés a la connection ... j'ecrirais un petit quelque chose la dessus bientôt.

Prérequis:
- une distro Debian sous Apache ( j'ai temporairement laissé tomber NGINX )
- le protocole HTTPS fonctionnel.
- les binaires de Brotli installés.


Installation:
1 installation des binaires:

sudo apt-get install brotli


2 installation des packagess Apache2-dev 

sudo apt-get install apache2-dev


3 récupération des sources pour l'apache-mode-brotli via git


cd /opt/
sudo apt-get install git
sudo git clone --depth=1 --recursive https://github.com/kjdev/apache-mod-brotli.git
 





Construction du module apache-mde-brotli


cd /opt/apache-mod-brotli
./autogen.sh
./configure
make
install -D .libs/mod_brotli.so /usr/lib/apache2/modules/mod_brotli.so -m 644
 





Initialisation du module:
création du liens logique pour le module


cd /etc/apache2/mods-available
echo "LoadModule brotli_module /usr/lib/apache2/modules/mod_brotli.so" > brotli.load





Création, tuning de brotli.conf, et démarrage du module:


cd /etc/brotli

nano brotli.conf

# Exemple de ma config
<IfModule brotli_module>
  # Compression
  ## BrotliCompressionLevel: 0-11 (default: 11)
  BrotliCompressionLevel 10
  ## BrotliWindowSize: 10-24 (default: 22)
  BrotliWindowSize 22
  # Logging
  # Filter note
  BrotliFilterNote Input  brotli_in
  BrotliFilterNote Output brotli_out
  BrotliFilterNote Ratio  brotli_ratio
  #LogFormat '"%r" %{brotli_out}n/%{brotli_in}n (%{brotli_ratio}n)' brotli
  #CustomLog ${APACHE_LOG_DIR}/brotli_access.log brotli
  # Output filter
  AddOutputFilterByType BROTLI text/html text/plain text/css text/xml
  AddOutputFilterByType BROTLI text/css
  AddOutputFilterByType BROTLI application/x-javascript application/javascript
  AddOutputFilterByType BROTLI application/rss+xml
  AddOutputFilterByType BROTLI application/xml
  AddOutputFilterByType BROTLI application/json
  # Global output filer if necessary.
  # SetOutputFilter BROTLI
  # SetEnvIfNoCase Request_URI \.txt$ no-br
</IfModule>
# EOF

# lorsque votre tuning est fini, copy du .conf en .local pour éviter écrasement si mise a jour des binaires dans le futur
cp brotli.conf brotli.local

# démarrage du module:
a2enmod brotli
service apache2 restart

# si besoin, arrêt du module:
a2dismod brotli
service apache2 restart
 



Vous pouvez tester brotli via https://tools.keycdn.com/brotli-test

zkdq.jpg

Et voila.  Pour voire les bénéfices de brotli, vous pouvez utiliser https://tools.keycdn.com/speed
Sur une de mes machines, je suis passé de 45 requetes et 3.7 mb de transfert à 49 requetes et 2.8 mb.

Voila.



.

Dernière modification par root@rkn (20-06-2018 19:19:23)


- If it works, dont update it.
- You don't know how, just do it, you will learn.
- Test, re-stest, test again, and maybe it will work.
- https://nextcloud.rkn.ovh/index.php/s/3yp93A7oNMPexcp

Hors ligne

#2 01-08-2018 19:05:47

Freemaster
Membre
Lieu : Nord
Distrib. : Debian amd64
Inscription : 31-07-2018
Site Web

Re : Installer Brotli

bonsoir,
une petite doc pour nginx pourrait bien m'intéresser tongue

o_O

Hors ligne

#3 02-08-2018 10:14:13

naguam
Membre
Lieu : Quelque part
Distrib. : Plusieurs
Noyau : Ça dépend
(G)UI : La CLI il n'y a que ça de vrai!
Inscription : 13-06-2016

Re : Installer Brotli

Est-ce plus performant que le LZMA2, car LZMA2 connu sous l'extension .xz compresse beaucoup plus que le gzip.
Après aujourd'hui ce qui pourrais être intéressant avec de la compression très performante, ce serais pour du cloud pear to pear (et sans m'inspirer de la série Silicon Valley quoi que, car je pense plutôt à infinit.sh)

Le soucis de la lenteur de contenu aujourd’hui sauf si on utilise encore un modem 56k ou une adsl de campagne instable, n'est pas du à la taille des fichiers a télécharger quand on va sur une page web mais plutôt des ressources qu'elles demandent pour tourner et des ressources des applications.

Je vois un avantage par contre c'est pour le chargement des vidéos ou de la musique haute qualité (au dessus je parle des sites web, là juste musique et vidéos) car si on a pas la fibre cela permettrait d'éviter des ralentissements même si certains lecteurs vidéos de sites webs n'ont aujourd'hui presque aucun soucis pour charger (sauf certains sites de streaming mais c'est "pas très légal big_smile)

Hors ligne

#4 02-08-2018 12:55:28

Frosch
Membre
Distrib. : FreeBSD
(G)UI : Xfce
Inscription : 09-12-2015

Re : Installer Brotli

Brötli ça veut dire petit pain... c'est un truc pour compacter le pain? tongue

Hors ligne

#5 02-08-2018 17:23:16

root@rkn
Membre
Lieu : Grenoble
Distrib. : Debian 10 Apache2 HTTPS HTTP/2 BROTLI REDIS
Noyau : PROD: 4.19.37-5 (2019-06-19) x86_64
(G)UI : headless - aucun
Inscription : 24-02-2018
Site Web

Re : Installer Brotli

Freemaster a écrit :

bonsoir,
une petite doc pour nginx pourrait bien m'intéresser tongue



Aie, j'utilise pas du tout nginx, mai sil y a cet exemple https://ethitter.com/2016/12/adding-bro … -to-nginx/


- If it works, dont update it.
- You don't know how, just do it, you will learn.
- Test, re-stest, test again, and maybe it will work.
- https://nextcloud.rkn.ovh/index.php/s/3yp93A7oNMPexcp

Hors ligne

#6 02-08-2018 17:25:04

root@rkn
Membre
Lieu : Grenoble
Distrib. : Debian 10 Apache2 HTTPS HTTP/2 BROTLI REDIS
Noyau : PROD: 4.19.37-5 (2019-06-19) x86_64
(G)UI : headless - aucun
Inscription : 24-02-2018
Site Web

Re : Installer Brotli

naguam a écrit :

Est-ce plus performant que le LZMA2, car LZMA2 connu sous l'extension .xz compresse beaucoup plus que le gzip.
Après aujourd'hui ce qui pourrais être intéressant avec de la compression très performante, ce serais pour du cloud pear to pear (et sans m'inspirer de la série Silicon Valley quoi que, car je pense plutôt à infinit.sh)

Le soucis de la lenteur de contenu aujourd’hui sauf si on utilise encore un modem 56k ou une adsl de campagne instable, n'est pas du à la taille des fichiers a télécharger quand on va sur une page web mais plutôt des ressources qu'elles demandent pour tourner et des ressources des applications.

Je vois un avantage par contre c'est pour le chargement des vidéos ou de la musique haute qualité (au dessus je parle des sites web, là juste musique et vidéos) car si on a pas la fibre cela permettrait d'éviter des ralentissements même si certains lecteurs vidéos de sites webs n'ont aujourd'hui presque aucun soucis pour charger (sauf certains sites de streaming mais c'est "pas très légal big_smile)



D'après les tests, brotli est actuellement supérieur a toute forme de compression, avec des ecaérts de 5% à 33% dixit google.
A noter que Brotli est actuellement complètement supporté par chrome, et que le projet est "financé" par google.


https://cran.r-project.org/web/packages … -09-22.pdf
et la quintessence de cet étude:

Our results indicate that brotli, and only brotli out of all the benchmarked algorithms, would be a
good replacement for the common use cases of the deflate algorithm in all three aspects,
compression ratio, compression speed, and decompression speed.

Dernière modification par root@rkn (02-08-2018 17:27:25)


- If it works, dont update it.
- You don't know how, just do it, you will learn.
- Test, re-stest, test again, and maybe it will work.
- https://nextcloud.rkn.ovh/index.php/s/3yp93A7oNMPexcp

Hors ligne

#7 02-08-2018 19:15:57

naguam
Membre
Lieu : Quelque part
Distrib. : Plusieurs
Noyau : Ça dépend
(G)UI : La CLI il n'y a que ça de vrai!
Inscription : 13-06-2016

Re : Installer Brotli

Oui je vois l'étude LZMA est derrière mais pas si loin smile brotli semble intéressant.

De plus LZMA est performant certes mais utilise beaucoup de mémoire (d'après wikipedia) d'un coup
(certaines personnes peuvent peut-être le confirmer, moi j'ai déjà eu de cours freezes sur un i5 4GB ram)

Dernière modification par naguam (02-08-2018 19:35:25)

Hors ligne

#8 09-05-2020 15:14:00

pubdiv
Membre
Inscription : 09-05-2020

Re : Installer Brotli

Bonjour
sur serveur Linux ns3 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1+deb10u1 (2020-04-27) x86_64,apache2 Version: 2.4.38-3+deb10u3
,  /etc/apache2/mods-available/brotli.load, Module brotli already enabled  , j'ai suivi la méthode ci dessus mais cela ne fonctionne pas.. pas erreur dans log apache2 , je suis preneur d une source de recherche sur ce qui bug...  Merci par avance

Hors ligne

#9 01-09-2020 02:39:46

root@rkn
Membre
Lieu : Grenoble
Distrib. : Debian 10 Apache2 HTTPS HTTP/2 BROTLI REDIS
Noyau : PROD: 4.19.37-5 (2019-06-19) x86_64
(G)UI : headless - aucun
Inscription : 24-02-2018
Site Web

Re : Installer Brotli

pubdiv a écrit :

Bonjour
sur serveur Linux ns3 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1+deb10u1 (2020-04-27) x86_64,apache2 Version: 2.4.38-3+deb10u3
,  /etc/apache2/mods-available/brotli.load, Module brotli already enabled  , j'ai suivi la méthode ci dessus mais cela ne fonctionne pas.. pas erreur dans log apache2 , je suis preneur d une source de recherche sur ce qui bug...  Merci par avance



En théorie, Brotli est supporté en natif depuis Apache 2.4.26

J'arrive après la guerre... Je viens de mettre a jour mon serveur, et effectivement, le webtest de brotli me dit que brotli n'est pas "enable" alors que mes test de télém réagissent comme si il fonctionnait ...



Pas de d'erreur en log non plus, je cherche ...

Hé voila, en fait, le site de test déconnes.

En voici un nouveau:  https://www.brotli.pro/

preview?fileId=1876323&x=2560&y=1440&a=true


Pas bon pour notre forum ...
preview?fileId=1876339&x=2560&y=1440&a=true

Dernière modification par root@rkn (01-09-2020 03:02:10)


- If it works, dont update it.
- You don't know how, just do it, you will learn.
- Test, re-stest, test again, and maybe it will work.
- https://nextcloud.rkn.ovh/index.php/s/3yp93A7oNMPexcp

Hors ligne

#10 17-09-2020 16:52:41

Herve5
Adhérent(e)
Lieu : mi à Toulouse mi Paris, France
Distrib. : Debian 6.1.0-13 bullseye
Noyau : Linux 6.1.0-13-amd64
(G)UI : xfce 4.18
Inscription : 02-03-2019

Re : Installer Brotli

M'oui.
Je note que
- dans le site même de Brotli.pro, la page "Benefits!" (https://www.brotli.pro/benefits/) indique en tout et pour tout : "Work in progress"
- l'image dans le premier post montre de meilleures performances sur des fichiers texte seulement (on est loin d'un miracle sur vidéo ou son, et franchement le reste importe-t-il)
- cette techno Google est aujourd'hui uniquement disponible... dans le navigateur Google, que je n'utilise jamais...

Bref désolé d'être un peu rabat-joie, mais de mon côté ayant plus ou moins réussi à éviter les GAFA durant des années, je ne vais pas immédiatement me ruer dans les bras de Google juste parce qu'il annonce "open source"...

--
Hervé S.
Lenovo Thinkpad P53 / Debian 12 Xfce ; Tuxedo InfinityBook / Ubuntu

Hors ligne

Pied de page des forums