[Resolu] Cache Varnish - o2Switch XtremCache - Headers - cache-control

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Resolu] Cache Varnish - o2Switch XtremCache - Headers - cache-control

    Bonjour,
    Quand on a beaucoup... on en veut encore plus. En transférant mes sites de 1&1 à o2Switch j'ai déjà énormément gagné en rapidité d'affichage (bon tous ceux qui ont entendu parler d'o2Switch le savent déjà)

    Ils proposent l'outil XtremCache - Varnish
    https://faq.o2switch.fr/hebergement-.../cache-varnish

    J'ai donc voulu essayé... j'ai résolu certains problèmes à l'aide de leur FAQ

    Par contre, lors des vérifications avec leur outil j'ai : "La page testée n'a pas été servi depuis le cache."

    J'ai contacté o2Switch qui m'a répondu dans la journée, mais il y a des points que je ne comprends pas, en particulier :
    Le header le plus important est celui qui se nomme "cache-control" qui permet de définir si une ressource peut être mise en cache ou non et pour combien de temps.
    Souvent, lorsque des pages ne sont pas servi depuis le cache, ce sont des pages qui contiennent un header "cache-control: max-age=0" dans la réponse.
    ...
    En résumé, il faut bien analyser les headers car c'est ce qui est utilisé par le cache pour savoir ce qui doit être dans le cache ou non.
    Comment analyser les headers ?
    Que doit-on modifier au niveau de Joomla (.htaccess certainement) pour que cela fonctionne. ?
    Mes compétences s'arrêtant là, je ne peux pas aller plus loin.

    Si on trouve la solution, le sujet pourra peut être servir à d'autres.

    Merci d'avance pour votre participation.

    Ci-dessous ma question à o2switch et leur réponse.
    Question posée à o2Switch

    Une question technique sur l'utilisation de XtremCache - Cache Varnish pour des site Joomla.

    Votre FAQ est très bien faite (bravo) et a permis de résoudre facilement les SSL non détectés et redirection HTTPS dans .htaccess

    * J’ai activé tous les sites Joomla avec XtremCache
    * Tous donnent le même résultat avec « Verifier » - La page testée n'a pas été servi depuis le cache.
    Essais effectués avec cache dans Joomla activé (conservateur) et cache dans Joomla désactivé.
    Essais sur un site de test avec un affichage sans contenu en dehors de la page Gantry, donc pas grand-chose d’activé sur cette page

    Ma question est donc : Il y a-t-il un truc simple à côté duquel je suis passé ? ou C’est trop compliqué pour moi et je dois laisser tomber ?

    Les sites concernés

    https://guernes.eu/

    https://crepier.info/

    https://www.biometrie-online.net/

    INFORMATIONS (idem pour tous les sites)

    Information sur le cache (exemple avec un site de test : mantois.fr avec un affichage sans contenu en dehors de la page Gantry, donc pas grand-chose d’activé sur cette page)
    _____

    Nom de domaine mantois.fr (+ version www)

    SSL Oui
    Adresse IP d'origine 109.234.164.22
    Type de personnalisation Cache (actif)
    Clé de purge du cache xxxxxxxxxxxxxxxxxxxxxxxx
    Template de cache utilisé joomla
    Configuration personnalisée (cookie) Cookie #0 : 16648584e9963175213206a6fdaee0ab
    Date de création 08/10/2018 à 14:31:39
    ___

    VERIFIER

    La page testée n'a pas été servi depuis le cache.

    La page testée définie des cookies, voici la liste (nom/valeur):

    16648584e9963175213206a6fdaee0ab : 03c5d0edb4f81625c85789a74a6b8b43

    Voici la liste des headers renvoyés par le serveur :
    Server : o2switch PowerBoost
    Date : Tue, 09 Oct 2018 11:55:22 GMT
    Content-Type : text/html; charset=utf-8
    Connection : close
    Expires : Wed, 17 Aug 2005 00:00:00 GMT
    Cache-Control : no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0, no-cache
    Pragma : no-cache
    X-Mod-Pagespeed : 1.11.33.4-0
    Vary : Accept-Encoding
    Age : 0
    X-Cache : MISS
    Accept-Ranges : bytes
    Réponse o2Switch

    Nous avons prévu de documenter plus en détails comment fonctionne le cache et surtout comprendre les cas ou la page est dans le cache ou non.
    Cela implique de bien comprendre le fonctionnement des requêtes HTTP et des headers notamment.

    De notre côté, le cache respecte les headers que renvoi le site internet.

    Certains de ces headers servent à définir la politique de cache à appliquer sur une ressource. Ces headers là sont lu par le navigateur web, par exemple, pour éviter de demander le re-téléchargement d'une ressource (comme une image).
    C'est également respecté par notre serveur de cache, par défaut, nous ne "forçons" pas de cache, nous "écoutons" ce que le site renvoi en se basant sur les headers.

    Le header le plus important est celui qui se nomme "cache-control" qui permet de définir si une ressource peut être mise en cache ou non et pour combien de temps.
    Souvent, lorsque des pages ne sont pas servi depuis le cache, ce sont des pages qui contiennent un header "cache-control: max-age=0" dans la réponse.

    Il y a également d'autres cas ou cela n'est pas en cache, par exemple, lorsqu'il y a des cookies (qui fonctionne aussi avec des header, set-cookie).
    Lorsqu'il y a un cookie, cela signifie que le contenu de la page est personnalisé pour l'utilisateur, par exemple, pour le choix de la langue.
    Si on conserve une page, avec un cookie dans le cache, le serveur risque de répondre avec une mauvaise version de la page : exemple la page en anglais alors que le visiteur souhaite celle en Français.
    Pour résumer de manière simple, des cookies = pas de cache.

    C'est à cela que sert l'outil d'exclusion de cookie dans l'outil. Certains cookies peuvent être ignorer car le modifie pas le contenu de la page ou sont créé par la page à mauvais escient (donc plutôt que de refaire le site, on peut l'ignorer au niveau du cache pour quand même mettre en cache la page).

    Donc lorsqu'une page n'est pas servi depuis le cache, il faut vérifier :
    1. S'il y a des cookies, cela se soit dans les headers. S'ils sont ignorables car ne modifient pas le contenu de la page, ils peuvent être ajoutés dans l'outil de cache pour être ignorés.
    2. Les headers de contrôle de cache : cache-control principalement (https://developer.mozilla.org/fr/doc.../Cache-Control), mais aussi expire (qui est déprécié au profit de cache-control) 3. Si c'est de l'ajax ou une requête POST, c'est ignoré également (car la réponse dépend du visiteur donc non cachable)

    En résumé, il faut bien analyser les headers car c'est ce qui est utilisé par le cache pour savoir ce qui doit être dans le cache ou non.
    Dernière édition par BiometrieOnline à 09/10/2018, 16h19
    Ma commune https://guernes.eu - Biométrie https://biometrie-online.net - Crêpes & Galettes https://crepier.info

  • #2
    Bonjour BiometrieOnline
    En marge de ta question ci-dessus, je voudrais évoquer le sujet suivant : j'aimerais bien faire un "JUG en ligne" (Joomla User Group) spécial hébergement.
    Le but n'est bien sûr pas d'être prescriptif (chacun fait ses choix librement !) mais de faire un tour d'horizon des bonnes expériences des uns et des autres.
    Certains comme toi connaissent bien O2Switch et pourraient dire ce qui leur plaît. Idem pour 2-3 autres personnes avec d'autres hébergeurs.
    Si on réalise cette session live un de ces 4, serais-tu partant ?
    Merci et à bientôt,
    Marc
    Le JoomlaDay 2019 aura lieu le 8 et 9 mars à Paris... A ne pas rater !

    Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter le nouveau service (en Beta) de la base de connaissance https://kb.joomla.fr

    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérer à l'AFUJ https://www.joomla.fr/association/adherer

    Présentations : slides.woluweb.be, ... | Coordonnées complètes : www.woluweb.be

    Commentaire


    • #3
      Bonjour,
      A propos du "cache age", la première à chose à faire est de bien comprendre à quoi cela sert.
      Le cache permet de stocker les pages générées et certains fichiers permettant au final au visiteur d'obtenir une page le plus vite possible.

      Pour qu'un serveur ou un service type CDN puisse mettre en cache ces informations, il faut "expliquer" alors comment il doit procéder.
      Sans information, il utilise une valeur par défaut ou... ne fait rien.

      Premier test : à l'aide de Webdeveloper (Firefox), si je regarde ton header, il m'indique que la page ne doit pas être en cache :
      Code:
       X-Firefox-Spdy: h2 accept-ranges: bytes age: 0 cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 content-encoding: gzip content-type: text/html; charset=utf-8 date: Tue, 09 Oct 2018 13:35:22 GMT expires: Wed, 17 Aug 2005 00:00:00 GMT last-modified: Tue, 09 Oct 2018 13:35:26 GMT p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM" pragma: no-cache server: nginx/1.15.4 vary: Accept-Encoding x-cache: MISS
      (Regarde "cache control" et "age").
      Tu dois donc indiquer via le htaccess comment le cache doit gérer tes pages, tes images, tes fichiers css, tes fichiers javascript, etc...

      En passant : attention, ta sécurisation SSL est incorrecte, tu as tu "mixt-content" directement sur la page d'accueil.

      Pour comprendre, je t'ai trouvé une page d'un site sur Google qui a déjà écrit l'essentiel sur le sujet (attention, je n'ai lu toute leur page, c'est une explication qui n'engage que les auteurs du site cités) : https://www.seomix.fr/guide-htaccess...de-chargement/
      [EDIT : et désolé si c'est un site "wordpress" : le principe reste le même quel que soit l'outil ]
      [EDIT2 : ouch... fais un test de ton site sur GTMetrix... F - F... Il y a encore un peu de boulot d'optimisation à faire...]
      Cordialement,
      Chabi01 - http://www.xlformation.com

      Commentaire


      • #4
        Merci pour les remarques

        Le site mantois.fr n'est pas un vrai site c'est juste pour faire des essais, donc rien à améliorer car il n'existe pas

        "En passant : attention, ta sécurisation SSL est incorrecte, tu as tu "mixt-content" directement sur la page d'accueil."
        J'ai ce soucis sur mes vrais sites car il y a des images d'annonce ou des liens qui viennent d'autres sites sans https
        Sur les pages avec que mes fichiers il n'y a pas ce problème. Pour les images je pourrais les héberger chez moi, mais comme parfois il s'agit de news pour une semaine seulement et bien pas le courage.

        J'ai essayé déjà des codes comme ceux que tu indique mais le résultat est toujours le même
        Cache-Control : no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0, no-cache

        Ma commune https://guernes.eu - Biométrie https://biometrie-online.net - Crêpes & Galettes https://crepier.info

        Commentaire


        • #5
          Ben voila que mon .htaccess se modifie tout seul

          Au début il y a qq lignes qui viennent d"arriver sans mon intervention (peut être une intervention de o2Switch ???

          Code:
          # o2switch pagespeed start / DO NOT REMOVE OR EDIT
          <IfModule pagespeed_module>
          ModPagespeed on
          ModPagespeedRewriteLevel PassThrough
          ModPagespeedEnableFilters extend_cache,lazyload_images
          </IfModule>
          # o2switch pagespeed end / DO NOT REMOVE OR EDIT
          mais cela ne change rien (je les ai ajoutées sur un autre site pour voir...rien de neuf)
          Dernière édition par BiometrieOnline à 09/10/2018, 16h17
          Ma commune https://guernes.eu - Biométrie https://biometrie-online.net - Crêpes & Galettes https://crepier.info

          Commentaire


          • #6
            Bonjour,
            Effectivement, un fichier ne se modifie pas "tout seul", c'est forcément une intervention de ton hébergeur si ce n'est pas toi.
            Tu devrais voir avec eux pour éviter que vous vous "tiriez dans les pattes" en faisant des modifs chacun de votre côté.
            Tu leur soumets ton htaccess, tu leur expliques que cela n'a pas l'air de fonctionner et qu'apparemment ils ont fait des modifs de leur côté et tu vois ce qu'ils te répondent

            Cordialement,
            Chabi01 - http://www.xlformation.com

            Commentaire


            • #7
              Bonsoir,

              J'ai déjà configuré mes serveurs pour utiliser varnish et memcached pour booster Joomla... il y a déjà plusieurs années. Comme votre hébergeur, j'ai créé une configuration spécifique pour joomla (via le langage VCL de Varnish) pour que le cache ne soit pas actif dans la partie administrator et d'autres éléments importants. On retrouve la configuration similaire dans votre outil XtremCache : https://faq.o2switch.fr/hebergement-...ish/tpl/joomla

              Sincèrement c'était plutôt pas mal avec des extensions comme cache cleaner version pro (de regular labs), jot cache, jch optimize...
              Depuis deux ans, je suis passé à autre chose de plus performant toujours sur joomla (je donnerai plus d'infos par la suite) mais pour revenir à Varnish, il faut approfondir le sujet.

              Envoyé par BiometrieOnline Voir le message
              Que doit-on modifier au niveau de Joomla (.htaccess certainement) pour que cela fonctionne. ?
              Pour cela, je vous invite à consulter la page de Fotis Evangelou (Joomlaworks - K2/Allvideos) :
              https://gist.github.com/fevangelou/84d2ce05896cab5f730a
              N'hésitez pas à donner cette configuration à votre hébergeur
              Fotis propose également un plugin pour les headers : http://www.joomlaworks.net/downloads...1_j1.5-3.x.zip





              Dernière édition par daneel à 11/10/2018, 02h32
              Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

              Commentaire


              • #8
                La sécurité et la performance étant primordiale, j'ai pris le temps de comparer avec d'autres solutions afin de mieux gérer mon propre hebergement. Par rapport aux différents tests que j'ai effectué sur dédié, la gestion avec Varnish arrive dans mon top 2 des 5 meilleures configuration pour Joomla.

                Exemple de configuration serveur dédié utilisé :
                Centos + Nginx + Whm(Cpanel) + Varnish + Apachebooster + CSF + Cloudflare
                Si vous avez un budget limité, vous pouvez remplacer le cpanel par CentOS Web Panel

                Si votre hebergeur vous propose Varnish personnalisé pour joomla, il y a des chances pour que votre site soit assez performant et réponds en tout points à vos besoins.

                Envoyé par BiometrieOnline Voir le message
                Comment analyser les headers ?
                1. Pour vérifier que cela fonctionne, on peut retrouver la trace de Varnish via la console du navigateur (touche F12), onglet network... recharger la page (F5 sur chrome) puis cliquer sur un élément de la liste du site.
                Dans la colonne "header", on retrouve "varnish" :


                2. L'auteur de l'extension Speedcache pour Joomla (Joomunited) vous propose également un module pour chrome qui affiche la présence active de varnish mais je n'ai pas réussi à le faire fonctionner.
                N'hésitez pas à lui indiquer si besoin : https://www.joomunited.com/products/...a-full-speedup



                3. Si c'est trop compliqué, vous avez également juste l'url à préciser dans https://isvarnishworking.uk/ pour vérifier que varnish fonctionne.

                Voilà pour le retour.
                Dernière édition par daneel à 11/10/2018, 02h33
                Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                Commentaire


                • #9
                  Merci pour vos commentaires.

                  J'avais trouvé le plugin de Joomlaworks mais je n'avais pas trop osé... maintenant c'est fait je l'utilise
                  Cela m'a permis de passer de :

                  Server : o2switch PowerBoost
                  Date : Tue, 09 Oct 2018 11:55:22 GMT
                  Content-Type : text/html; charset=utf-8
                  Connection : close
                  Expires : Wed, 17 Aug 2005 00:00:00 GMT
                  Cache-Control : no-store, no-cache, must-revalidate, post-check=0, pre-check=0, max-age=0, no-cache
                  Pragma : no-cache
                  X-Mod-Pagespeed : 1.11.33.4-0
                  Vary : Accept-Encoding
                  Age : 0
                  X-Cache : MISS
                  Accept-Ranges : bytes

                  à

                  Information sur le cache
                  • Le cache est bien actif, la page a été servi depuis le cache !
                  • La page testée définie des cookies, voici la liste (nom/valeur):
                    • 7984211c4a8b33d556533079024634ea : 4a11a0ce1bdfce151e3dba2b7c7fe87f
                  • Voici la liste des headers renvoyés par le serveur :
                    • Server : o2switch PowerBoost
                    • Date : Thu, 18 Oct 2018 13:57:16 GMT
                    • Content-Type : text/html; charset=utf-8
                    • Content-Length : 213667
                    • Connection : close
                    • P3P : CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
                    • Cache-Control : public, max-age=3600, stale-while-revalidate=7200, stale-if-error=18000, max-age=0, no-cache
                    • Pragma : public
                    • Expires : Thu, 18 Oct 2018 14:33:39 GMT
                    • X-Logged-In : False
                    • X-Mod-Pagespeed : 1.11.33.4-0
                    • Vary : Accept-Encoding
                    • X-Storage : memory
                    • Age : 1419
                    • X-Cache : HIT
                    • X-Cache-Hits : 4
                    • Accept-Ranges : bytes


                  ou sur un autre site (pas pareil mais je ne sais pas pourquoi)
                  • Le cache est bien actif, la page a été servi depuis le cache !
                  • La page testée définie des cookies, voici la liste (nom/valeur):
                    • 5cfa64259c222b355a0e6637608b12ef : ce3e10717f48ba6802b82b16bd232809
                  • Voici la liste des headers renvoyés par le serveur :
                    • Server : o2switch PowerBoost
                    • Date : Thu, 18 Oct 2018 13:50:55 GMT
                    • Content-Type : text/html; charset=utf-8
                    • Content-Length : 188558
                    • Connection : close
                    • P3P : CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
                    • X-Logged-In : False
                    • Expires : Thu, 18 Oct 2018 12:44:53 GMT
                    • X-Storage : memory
                    • Vary : Accept-Encoding
                    • Age : 4864
                    • X-Cache : HIT
                    • X-Cache-Hits : 2
                    • Accept-Ranges : bytes


                  Résultat : Meilleur efficacité que le cache Joomla (houpi!)

                  Par contre il me semble qu'il faut laisser le cache Joomla désactivé sinon cela se dégrade assez vite (à vérifier).


                  Réponse o2Switch

                  Pour la partie ajouté dans le .htaccess, c'est fait par le module pagespeed présent dans cPanel.
                  Cela n'a pas de lien direct avec le cache donc c'est normal que ça ne fasse rien de particulier.
                  Pagespeed permet de forcer certaines recommandations sur le site, en effectuant cela au niveau du serveur, comme la concaténation des fichiers, la minification, etc....

                  Pour le cache de Joomla, le fait de la laisser actif ne devrait pas changer grand chose je pense hormis le fait de générer des fichiers inutilement car le cache se fait en amont]



                  Donc sans ce plugin il est probable que Joomla ne soit pas trop compatible avec Varnish

                  Dommage que l'on ne puisse pas intervenir sur les heads directement dans Joomla
                  Dernière édition par BiometrieOnline à 19/10/2018, 11h20
                  Ma commune https://guernes.eu - Biométrie https://biometrie-online.net - Crêpes & Galettes https://crepier.info

                  Commentaire

                  Annonce

                  Réduire
                  1 sur 2 < >

                  C'est [Réglé] et on n'en parle plus ?

                  A quoi ça sert ?
                  La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                  Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                  Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                  Comment ajouter la mention [Réglé] à votre discussion ?
                  1 - Aller sur votre discussion et éditer votre premier message :


                  2 - Cliquer sur la liste déroulante Préfixe.

                  3 - Choisir le préfixe [Réglé].


                  4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                  2 sur 2 < >

                  Assistance au forum - Outil de publication d'infos de votre site

                  Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                  Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                  Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                  UTILISER À VOS PROPRES RISQUES :
                  L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                  Problèmes connus :
                  FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                  Installation :

                  1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                  Archive zip : https://github.com/AFUJ/FPA/zipball/master

                  2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                  3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                  4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                  5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                  6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                  et remplacer www. votresite .com par votre nom de domaine


                  Exemples:
                  Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                  Télécharger le script fpa-fr.php dans: /public_html/
                  Pour executer le script: http://www..com/fpa-fr.php

                  Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                  Télécharger le script fpa-fr.php dans: /public_html/cms/
                  Pour executer le script: http://www..com/cms/fpa-fr.php

                  En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                  Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                  Voir plus
                  Voir moins
                  Travaille ...
                  X