Le cache oui, mais quid pour les utilisateurs Enregistrés ?

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

  • [RÉGLÉ] Le cache oui, mais quid pour les utilisateurs Enregistrés ?

    Bonjour,

    Tiens, petite question "conceptuelle" : sur un site j'ai activé
    - le "Cache Conservateur" dans la config générale
    - et le plugin "Système - Cache de page"

    Ca fonctionne super pour le Public.
    Mais dès que les gens sont Enregistrés (et connectés), il n'y a plus de cache qui tienne, si ?

    Y a-t-il moyen d'avoir quand même un cache pour les Enregistrés ??
    Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

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

    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

  • #2
    Bonjour

    Dans l'absolu cela me paraît difficile... Si je viens sur ton site et qu'il me dit "Bonjour Christophe " la mise en cache ne pourrait concerner que moi et moi seul (puisqu'il faut aussi tenir compte de mes ACLs).

    Il faudrait donc un cache par utilisateur unique.

    Dans la pratique il pourrait être concevable de définir des modules pour lesquels le gestionnaire du site pourrait paramétrer le cache de manière plus fine. Si mes connaissances sont toujours valides, le cache est désactivé si connecté.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      La page "mon profil" est bien sûr personnelle.
      Mais toutes les pages de Film sur le site concerné p ex sont communes à *tous* les utilisateurs.

      D'où l'idée d'essayer de contourner le fait qu'il n'y a (apparemment) aucun cache dès lors qu'on est connecté...
      Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

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

      Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

      Commentaire


      • #4
        Bonjour,

        Explication est donnée ici : https://docs.joomla.org/Cache/fr
        Il ne faut pas se connecter pour tester le cache joomla car les utilisateurs enregistrés ont des éléments dynamiques incompatibles avec les fonctions du cache comme ceux du profil (nom, adresse mail, avatar...), des messages et accès spécifiques à des utilisateurs.


        Si cela peut t'aider Marc....

        1. La solution que j'utilise vient du cache de litespeed car celui-ci permet de gérer le cache séparé pour chaque utilisateur connecté sous Joomla. Ainsi les nombreux "invités" anonymes auront le même cache mais les utilisateurs ayant un compte auront leur propre copie. On a la même flexibilité avec le chargement des modules en cache et l'implantation du balisage ESI ( https://fr.wikipedia.org/wiki/Edge_Side_Includes ). Bien evidemment, il faut disposer d'un hebergement sous des serveurs litespeed mais le réglage est assez top à faire.
        Plus d'infos : https://blog.litespeedtech.com/2018/...ers-in-joomla/

        2. l'alternative serait de le faire via Varnish (à condition que votre hébergement dispose de ce fameux reverse proxy ).
        exemple de Fotis : https://gist.github.com/fevangelou/84d2ce05896cab5f730a (Juillet 2020) avec le plugin https://github.com/joomlaworks/url-normalizer
        Pour les utilisateurs connectés, X-Logged-In est ajouté à l'entête avec un cookie :

        Code PHP:

        if ($getUserState->guest) {
        JResponse::allowCache(true);
        JResponse::setHeader('X-Logged-In''False'true);
        if(
        $_COOKIE["userID"]){
        setcookie("userID"""time() - 3600'/'$cookieDomain0);
        }
        } else {
        JResponse::allowCache(true);
        JResponse::setHeader('X-Logged-In''True'true);
        if(!isset(
        $_COOKIE["userID"])){
        setcookie("userID"$getUserState->id0'/'$cookieDomain0);
        }

        Cependant, il faudra également indiquer à varnish les pages à exclure pour que le site Joomla ne soit pas "cassé", cela concerne les pages de connexion, soumission forum, inscription, newsletter, commentaires... Tout est expliqué en commentaire dans la page du script fourni en lien ci-dessus.

        Pour avis, comme je l'avais indiqué en réunion JUG Wallonie, ce sont deux configurations différentes mais la performance est au rendez-vous et cela fonctionne !


        Dernière édition par daneel à 12/12/2020, 21h48
        woluweb aime ceci.
        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

        Commentaire


        • #5
          Oui pour avoir suivi tes autres discussions, je comprends bien le pourquoi de ta question.

          Je peux supposer que quelqu'un qui connait les entrailles de Joomla pourrait te proposer une solution.

          J'ai vite regardé le code de Joomla et perso je commencerai à hacker le fichier le plugin de cache et cela en ligne 118 https://github.com/joomla/joomla-cms...cache.php#L118

          Cela me semble un bon point de départ pour quand même autoriser le cache si tu as un utilisateur connecté.

          (aussi voir https://github.com/joomla/joomla-cms...cache.php#L164)
          Dernière édition par cavo789 à 12/12/2020, 21h23
          woluweb aime ceci.
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Envoyé par cavo789 Voir le message
            Je peux supposer que quelqu'un qui connait les entrailles de Joomla pourrait te proposer une solution.
            ...J'ai vite regardé le code de Joomla et perso je commencerai à hacker le fichier le plugin de cache ...
            Cela me semble un bon point de départ pour quand même autoriser le cache si tu as un utilisateur connecté.
            En fait, cela existe apparemment dans speed cache : "CACHING FOR LOGGED IN"


            Essaye de voir avec l'éditeur de cette extension pour en savoir plus. J'estime qu'il y a trop de problèmes à gérer et je ne suis pas certain du résultat contrairement aux 2 solutions que j'ai indiqué précédemment ( litespeed et varnish ). D'après mon expérience, c'est très difficile de revenir en arrière quand tu as eu le loisir d'avoir des résultats au delà de ce que l'on peut imaginer.

            Le choix de Christophe ( @cavo789 ) de s'aventurer dans le côté obscur du hack peut sembler séduisant mais vu les retours, je lui laisse le soin d'en apporter la preuve.



            Dernière édition par daneel à 13/12/2020, 11h51
            woluweb aime ceci.
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              Merci tous les deux !
              Le site est chez PlanetHoster, mais pas de bol ils n'avaient pas pris l'option "VIP" qui inclut LiteSpeed...

              Et sauf erreur de ma part, si on ajoute VIP après, il faut changer de serveur (ce n'est donc pas transparent, il faut tout réinstaller comme si on changeait d'hébergeur).
              Mais LiteSpeed est sûrement la meilleure pioche.

              A très court terme, je vais creuser la piste Speed Cache...
              Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

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

              Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

              Commentaire


              • #8
                Du côté sombre de la Force, Marc Skywalker ne veut la frontière franchir

                Plus sérieusement, voici les arguments auxquels je songeais:

                * Joomla est OpenSource aussi pourquoi ne pas vite aller voir le ou la ligne de code qui serait à changer; c'est tout l'intérêt de l'Open Source ,
                * Peut-être que la solution est ultra simple : à regarder le plugin de cache, si ce n'est que là et strictement là qu'il faut intervenir, ce ne serait jamais que deux conditions if à mettre en commentaire,
                * Du coup, c'est très vite testé et implémenté (nul besoin de changer d'hébergement comme mentionné ci-dessus par Marc),
                * Si je comprends bien le besoin, le site de Marc est fortement utilisé (d'oû l'intérêt du cache) mais pour une période très limitée dans le temps; un hack du plugin n'aurait pas trop de conséquence sur une prochaine version du CMS; il suffit d'attendre quelques semaines avant de faire la màj sur ce site,
                * Re, si seulement deux conditions à modifier; ben, en cas de mise-à-jour, le hack est vite remis en place (à condition de documenter le hack dans un document de maintenance du site; Marc étant rigoureux (côté clair de la Force), nul doute qu'il dispose de ce type de document,
                * Et puis, c'est fun

                S'il n'existe pas de solution standard; ben, deux Ifs en moins, cela me paraît un bon compromis.

                Marc, la Force veut de toi. Sois sensible aux voix de l'infini et rejoins-nous; nous avons d'excellents cookies...

                woluweb aime ceci.
                Christophe (cavo789)
                Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                Commentaire


                • #9
                  Envoyé par woluweb Voir le message
                  Merci tous les deux !
                  Le site est chez PlanetHoster, mais pas de bol ils n'avaient pas pris l'option "VIP" qui inclut LiteSpeed...

                  Et sauf erreur de ma part, si on ajoute VIP après, il faut changer de serveur (ce n'est donc pas transparent, il faut tout réinstaller comme si on changeait d'hébergeur).
                  Mais LiteSpeed est sûrement la meilleure pioche.

                  A très court terme, je vais creuser la piste Speed Cache...
                  Non, il suffit de demander au service commercial et la migration est transparente d'un World standard à un VIP, si je me souviens bien ce qui m'était arrivé lorsque j'ai pris mon premier serveur chez PlanetHoster. Le plus simple est de leur poser la question pour confirmer ou infirmer mon souvenir.
                  woluweb aime ceci.
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                  MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                  Commentaire


                  • #10
                    Merci RobertG !
                    En fait, je suggère toujours à mes clients de prendre l'option VIP, mais parfois ils ne le font pas (comme ici).

                    La seule fois où j'ai dû rebasculer vers VIP, j'ai dû migrer moi-même.
                    Mais de fait, ici je viens de leur demander s'ils pouvaient le faire et ils me disent que oui
                    Bon, j'aime pas faire ça en "dernière minute", à deux jours du lancement de l'opération, pcq je ne sais pas s'ils corrigent correctement les chemins dans configuration.php p.ex.
                    On verra !

                    En tout cas, encore merci aussi daneel et @cavo789 pour les retours. Comme d'hab, Yann, tu es super complet et documenté
                    J'avais jamais fait attention à cette option de LiteSpeed (en fait, c'est la 1e fois sur bientôt une décennie que j'ai le cas de figure d'un site "pour membres". D'ordinaire, tout est public. Ou ce sont des assoc qui ont quelques visites par jour de leurs membres, donc la question du cache est marginale).

                    C'est vraiment une tuerie ce LiteSpeed !
                    Mais juste une question pratique : en activant LiteSpeed, que faut-il faire
                    - du System - Page Cache : peut-il rester activé... ou pas ?
                    - du Cache de la Configuration Générale : peut-il rester sur Conservative ou doit-il être mis à "aucun" ?

                    (juste histoire de pas déconner sachant qu'on est à l'avant-veille du lancement de l'opération. Pas bcp le tps de faire des tests en long et en large)

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

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

                    Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

                    Commentaire


                    • #11
                      D'après la doc LiteSpeed (et mon expérience perso), les 2 caches Joomla! (config générale et plugin système) doivent être désactivés.
                      Si d'autres extensions génèrent du cache (pas du cash !), il faut que la durée de celui-ci soit supérieure à celle du cache de LiteSpeed (parce que bien sûr la vraie utilité d'utiliser un serveur LiteSpeed est de bénéficier de son cache, donc l'utilisation dans Joomla! est contrôlée par le composant LiteSpeed Cache).
                      woluweb aime ceci.
                      Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
                      Administrateur certifié Joomla! 3
                      https://www.betterweb.fr

                      Commentaire


                      • #12
                        Bonjour,

                        Oui, il faut désactiver le plugin «Système - Cache de page» et tout autre cache pleine page.

                        Comme indiqué chez Litespeed : https://blog.litespeedtech.com/2018/...he-for-joomla/
                        et le wiki : https://docs.litespeedtech.com/lscache/lscjoomla/

                        Globalement, il y a des extensions qui utilise le cache qu'il soit désactivé ou non dans la configuration du site. C'est le cas également de certains frameworks de template comme helix qui fusionne et optimise les fichiers css et js pour le stocker dans le repertoire cache. Le contenu actif sera donc pris en compte par lscache mais j'aurai tendance à laisser désactivé le cache joomla tout comme la compression gzip.
                        woluweb aime ceci.
                        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                        Commentaire


                        • #13
                          Merci daneel et jfque pour la confirmation.

                          Vu que le projet est en mode "just-in-time", votre information est précieuse pour ne pas se planter !
                          Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

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

                          Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

                          Commentaire

                          Annonce

                          Réduire
                          Aucune annonce pour le moment.

                          Partenaire de l'association

                          Réduire

                          Hébergeur Web PlanetHoster
                          Travaille ...
                          X