Auteur Sujet: Optimiser son site Web automatiquement avec mod_pagespeed pour Apache  (Lu 4477 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 228
    • Twitter LaFibre.info
Optimiser son site Web automatiquement avec mod_pagespeed pour Apache

Google met régulièrement à disposition des internautes et des webmasters des outils gratuits et très pratiques. Certains sont financés par la publicité d’autres sont vraiment intégralement gratuits et sans publicité. Leur dernière nouveauté c’est un module pour le serveur web Apache 2.2 nommé mod_pagespeed. Le mod_page speed se place entre le code source d’un site et la sortie générée par le serveur web.

D'après Google, le gain serait de 50% pour la vitesse d'affichage de la page. Ces gains peuvent être réalisés "à la main", mais mod_pagespeed, peut le faire à votre place. Le gain est impressionnant l'hébergeur http://www.godaddy.com/ à déjà décidé de l'activer pour les 8.5 millions de sites qu'il héberge.

Voici ce que fait principalement ce module PageSpeed :

  • Concaténation des fichiers CSS et ajout d'un entête d'expiration
  • Ajout d'entête d'expiration pour les fichiers spécifiés (images, CSS, JS) pour améliorer la mise en cache.
  • Minification du code javascript (pour l'instant l'algorithme utilisé est proche de JSMin, mais on peut imaginer que l'équipe Google redéveloppe le moteur de YUI compressor par la suite).
  • Compression des images PNG et JPG à la volée, et ajoute les attributs height et width à tous les tags img (permet d'accélérer le rendu de la page).
  • Mesure du temps de chargement via un code js : on peut ainsi connaître les temps de chargement réels sur les navigateurs des visiteurs (inutile si on utilise déjà Jiffy).
  • Supprimer les espaces multiples dans le code source, les quotes des attributs ainsi que les commentaires HTML
  • Supprimer les attributs par défaut dans les tags HTML
  • Prise en charge automatique de la durée de vie dans le cache pour les images : 304 Not Modified
  • Copie des petits fichiers javascript directement dans le code source de la page (évite des requêtes supplèmentaires).
  • Copie des petites images directement dans le code source de la page (évite des requêtes supplèmentaires - inline images).

Note : Chaque filtre est désactivable, et l'on peut créer ses propres filtres

Le directeur Technique d'OVH, Octave, a mis en place un site pour tester les performances de cette extension :

Citation de: oles
Bonjour,
Pour ceux qui s'intéressent à la question d'optimisation, Google a sortie un mod pour Apache qui doit améliorer les performances.

Sans : http://87.98.222.154/joomla/?ModPagespeed=off
Avec : http://87.98.222.154/joomla/

Si vous utilisez Firefox avec une ADSL, il n'y a pas vraiment de différence. Par contre avec l'Iphone en 3G il y a une vraie différence de temps d'affichage.

Amicalement
Octave

Petite vidéo de démonstration de la différence de rapidité : (source : Google)


Si vous êtes un serveur Ubuntu (ou Debian) 64 bits l'installaytion prend 5 minutes :

# wget -c « https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb »
# dpkg -i mod-pagespeed-beta_current_amd64.deb
# /etc/init.d/apache2 restart


Et voila vous venez d’installer le nouveau module pagespeed sur votre serveur. Vérifiez bien l'absence de régression.

Liens Google (en Anglais) :
- Pages Speed
- Module mod_pagespeed
- Documentation mod_pagespeed
- La liste officielle des filtres de mod_pagespeed

vivien

  • Administrateur
  • *
  • Messages: 47 228
    • Twitter LaFibre.info
Optimiser son site Web automatiquement avec mod_pagespeed pour Apache
« Réponse #1 le: 19 novembre 2010 à 10:06:40 »
Un article de Papy Geek sur mod_pagespeed :

Optimiser les performances des sites Web est une activité qui peut vite devenir chronophage pour plus d’un Webmaster. Les outils permettant de déterminer les différents paramètres à optimiser ce sont multipliés que ce soit avec PageSpeed ou YSlow pour Firefox ou GTmetrix depuis le Web. Pourtant, gagner des points dans ces différents tests n’est pas chose facile et on se réjouira donc aujourd’hui de voir que Google tente d’automatiser ce travail grâce à un module pour Apache 2.2 : mod_pagespeed.

Alors que l’extension PageSpeed pour Firefox/Firebug tentait de donner des conseils pour optimiser son site, le module mod_pagespeed tente cette fois-ci de les appliquer. L’opération est effectuée à la volée par le serveur Apache et ne nécessite donc aucune modification de code dans votre application (du moins quand ça marche).

L’installation de PageSpeed est relativement simple, il faut tout d’abord télécharger le module sur cette page et l’installer avec l’une des commandes suivantes en fonction de votre distribution :

Pour Debian ou Ubuntu en tant que root : dpkg -i mode_pagespeed_*.deb
Pour CentOS ou Fedora en tant que root : rpm -i mod_pagespeed_*.rpm

Le fichier de configuration se nomme pagespeed.conf et est situé à l’emplacement suivant sur Debian ou Ubuntu : /etc/apache2/mods-available/pagespeed.conf

Sous CentOS ou Fedora : /etc/httpd/conf.d/pagespeed.conf

Le fichier de configuration par défaut ressemble à ça :

<IfModule pagespeed_module>
    SetOutputFilter MOD_PAGESPEED_OUTPUT_FILTER
    ModPagespeed on
 
    # ModPagespeedUrlPrefix is the prefix assigned to some types of
    # rewritten resources. This directive will be removed in a future
    # release. For now, you must specify a URL and path for a hostname
    # that is served by this Apache
    # instance. [url=http://yourhostname/mod_pagespeed]http://yourhostname/mod_pagespeed[/url] is a good default
    # value (replace localhost, below, with the hostname of your
    # Apache instance).
    ModPagespeedUrlPrefix                "http://localhost/mod_pagespeed/"
 
    # The ModPagespeedFileCachePath and
    # ModPagespeedGeneratedFilePrefix directories must exist and be
    # writable by the apache user (as specified by the User
    # directive).
    ModPagespeedFileCachePath            "/var/mod_pagespeed/cache/"
    ModPagespeedGeneratedFilePrefix      "/var/mod_pagespeed/files/"
 
    # Override the mod_pagespeed 'rewrite level'. The default level
    # "CoreFilters" uses a set of rewrite filters that are generally
    # safe for most web pages. Most sites should not need to change
    # this value and can instead fine-tune the configuration using the
    # ModPagespeedDisableFilters and ModPagespeedEnableFilters
    # directives, below. Valid values for ModPagespeedRewriteLevel are
    # PassThrough and CoreFilters.
    #
    # ModPagespeedRewriteLevel CoreFilters
 
    # Explicitly disables specific filters. This is useful in
    # conjuction with ModPagespeedRewriteLevel. For instance, if one
    # of the filters in the CoreFilters needs to be disabled for a
    # site, that filter can be added to
    # ModPagespeedDisableFilters. This directive contains a
    # comma-separated list of filter names, and can be repeated.
    #
    # ModPagespeedDisableFilters rewrite_javascript
 
    # Explicitly enables specific filters. This is useful in
    # conjuction with ModPagespeedRewriteLevel. For instance, filters
    # not included in the CoreFilters may be enabled using this
    # directive. This directive contains a comma-separated list of
    # filter names, and can be repeated.
    #
    # ModPagespeedEnableFilters collapse_whitespace,elide_attributes
 
    # ModPagespeedDomain
    # authorizes rewriting of JS, CSS, and Image files found in this
    # domain. By default only resources with the same origin as the
    # HTML file are rewritten. For example:
    #
    #   ModPagespeedDomain cdn.myhost.com
    #
    # This will allow resources found on [url=http://cdn.myhost.com]http://cdn.myhost.com[/url] to be
    # rewritten in addition to those in the same domain as the HTML.
    #
    # Wildcards (* and ?) are allowed in the domain specification. Be
    # careful when using them as if you rewrite domains that do not
    # send you traffic, then the site receiving the traffic will not
    # know how to serve the rewritten content.
 
    # Enables server-side instrumentation and statistics.  If this rewriter is
    # enabled, then each rewritten HTML page will have instrumentation javacript
    # added that sends latency beacons to /mod_pagespeed_beacon.  These
    # statistics can be accessed at /mod_pagespeed_statistics.  You must also
    # enable the mod_pagespeed_statistics and mod_pagespeed_beacon handlers
    # below.
    #
    # ModPagespeedEnableFilters add_instrumentation
 
 
    # This handles the client-side instrumentation callbacks which are injected
    # by the add_instrumentation filter.
    # You can use a different location by adding the ModPagespeedBeaconUrl
    # directive; see the documentation on add_instrumentation.
    #
    # <Location /mod_pagespeed_beacon>
    #       SetHandler mod_pagespeed_beacon
    # </Location>
 
    # This page lets you view statistics about the mod_pagespeed module.
    <Location /mod_pagespeed_statistics>
        Order allow,deny
        # You may insert other "Allow from" lines to add hosts you want to
        # allow to look at generated statistics.  Another possibility is
        # to comment out the "Order" and "Allow" options from the config
        # file, to allow any client that can reach your server to examine
        # statistics.  This might be appropriate in an experimental setup or
        # if the Apache server is protected by a reverse proxy that will
        # filter URLs in some fashion.
        Allow from localhost
        SetHandler mod_pagespeed_statistics
    </Location>
</IfModule>

Modpagespeed On ou Off permet d’activer ou désactiver pagespeed. PageSpeed tire partie d’optimisations dans différents domaines : html, css, js, images, etc. Les optimisations peuvent consister à compresser les données, à les regrouper (pour réduire le nombre de requêtes par exemple), à supprimer des données inutiles, positionner les durées du cache pour le navigateur, etc.

Pour les optimisations autres que le HTML, il faudra préciser les domaines concernés dans le fichier de configuration avec "ModPagepeedDomain".

Vous pourrez alors activer ou désactiver chacun des filtres. Je vous conseille de consulter la description des filtres un par un sur cette page.
Vous verrez en effet que certaines optimisations ne sont pas sans risque : pour le javascript par exemple, le fait d’activer des optimisations du type « Minify Javascript » peut parfois poser problème et le javascript peut ne plus fonctionner complètement. Tester est la meilleure façon de s’en rendre compte.
Evitez donc d’activer toutes les optimisations d’un seul coup.

Le module peut être désactivé : a2dismod pagespeed
Le module peut être activé : a2enmod pagespeed

Un redémarrage d’Apache est nécessaire pour prendre tout ça en compte.
Allez, bon courage pour le « grade A » ;)
mod_pagespeed.


Source : Papy Geek 3 novembre 2010