IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Apache et le cache ?


Sujet :

Apache

  1. #1
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut Apache et le cache ?
    Bonjour,

    J'ai un serveur dédié sur lequel j'ai un site internet. jusque la rien de plus banal.
    sur mon serveur apache j'ai des scripts php qui interroge un autre site (pour obtenir un feed XML).

    Tout au long de la journée il y a des miliers de personnes qui vont demander à mon site d'afficher les meme informations.

    Le serveur apache va donc faire la meme requete pour obtenir le meme resultat plusieurs milier de fois.

    Je ne suis pas sur du system que je dois mettre en place pour eviter ces requetes inutiles. J'ai vu qu'il existait un module mod_proxy pour apache, mais je ne suis pas sur que c'est ce dont j'ai besoin.

    Je trouve pas trop de docs sur le sujet. Est ce que quelqu'un aurrait une idée pour mettre en place un tel system ?

    Merci par avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    J'ai déjà fait ce genre de truc. Généralement ce que je fais c'est qu'une fois que j'ai récupéré le fichier XML distant, je le sauve en local sur le disque et j'utilise pendant un certain temps ce fichier local. En gros, chaque fois que je veux utiliser le fichier (ou son résultat), je regarde s'il existe localement ; s'il n'existe pas, je vais le chercher à distance et je l'enregistre sur le disque et je l'utilise ; s'il est présent localement, je regarde sa date de dernière modification ; si cette date est vieille de plus de X minutes, je vais chercher une nouvelle version à distance et je l'enregistre ; sinon, si le fichier est encore siffisamment récent, j'utilise la version locale.

    Pour répondre sur mod_proxy, mod_proxy permet de faire en sorte qu'Apache se comporte comme un proxy ou un reverse proxy vis-à-vis du client (= le navigateur). Mod_proxy ne fait pas de cache à ma connaissance (mod_cache le fait). Donc je ne pense pas que mod_proxy réponde à ton besoin.

    _Mac_

    PS : système prend un e à la fin en français

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Je voudrais eviter de me lancer dans de la programmation d'un module de gestion de cache si c'etait possible.
    J'ai installer mod_cache sur mon server pour faire des tests. j'avoue que ce n'est pas évident de configurer tout ca.

    ma configuration Apache actuelle est la suivante:

    Server version: Apache/2.2.8 (Unix)
    Server built: May 7 2008 23:54:04
    Cpanel::Easy::Apache v3.2.0 rev4183

    <IfModule mod_cache.c>
    LoadModule disk_cache_module modules/mod_disk_cache.so

    <IfModule mod_disk_cache.c>
    CacheRoot /data/httpd-cache
    CacheEnable disk /
    CacheDirLevels 5
    CacheDirLength 3
    </IfModule>
    </IfModule>
    Si je veux mettre en cache seulement une partie de mon site comment je peux faire ? Car de ce que j'ai compris tout mon site est mis en cache avec cette configuration.

    D'ailleur si je regarde dans "/data/httpd-cache" je n'ai aucun fichier donc je pense que le cache ne fonctionne pas super bien.
    J'ai entendu parler d'un mode debug pour mod_cache, je vais regarder de plus pres si je trouve des informations.

    Si vous avez deja traité avec ce sujet je suis preneur car en ce moment je sui un peu perdu.

    Merci par avance.

  4. #4
    Membre averti Avatar de max44410
    Étudiant
    Inscrit en
    Juin 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2003
    Messages : 426
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    Petite mise a jour en ce qui concerne mon dernier post.

    ma config est la suivante:

    # enable expirations
    ExpiresActive On
    # expire GIF images after a month in the client's cache
    ExpiresByType image/gif A2592000
    # HTML documents are good for a week from the
    # time they were changed
    ExpiresByType text/html M604800


    #
    # To enable a cache of proxied content, uncomment the following lines.
    # See http://httpd.apache.org/docs/2.2/mod/mod_cache.html for more details.
    #

    <IfModule mod_cache.c>
    LoadModule disk_cache_module modules/mod_disk_cache.so

    <IfModule mod_disk_cache.c>
    CacheRoot /data/http-cache
    CacheEnable disk /
    CacheDirLevels 3
    CacheDirLength 1
    CacheIgnoreCacheControl On
    #CacheIgnoreHeaders Set-Cookie
    CacheIgnoreQueryString Off
    CacheIgnoreNoLastMod On
    </IfModule>
    </IfModule>
    j'ai trouver comment debugger le cache, il suffit de mettre le "logLevel" au niveau "debug"

    dans mes logs j'ai cette ligne:

    ...
    [Thu May 08 17:38:43 2008] [debug] mod_disk_cache.c(476): disk_cache: Recalled cached URL info header http://xxx:80/images/favicon.gif?
    [Thu May 08 17:38:45 2008] [debug] mod_disk_cache.c(749): disk_cache: Recalled headers for URL http://xxx:80/images/favicon.gif?
    [Thu May 08 17:38:45 2008] [debug] mod_cache.c(282): cache: running CACHE_OUT filter
    [Thu May 08 17:38:45 2008] [debug] mod_cache.c(296): cache: serving /images/favicon.gif
    [Thu May 08 17:38:47 2008] [debug] mod_cache.c(131): Adding CACHE_SAVE filter for /xxx/search.php
    [Thu May 08 17:38:48 2008] [debug] mod_cache.c(138): Adding CACHE_REMOVE_URL filter for /xxx/search.php
    [Thu May 08 00:38:53 2008] [debug] mod_cache.c(528): cache: /xxx/search.php?q=cars&page=1&type=web not cached. Reason: Expires header already expired, not cacheable
    ...
    comme vous pouvez le voir la derniere sur la derniere ligne, "/xxx/search.php?q=cars&page=1&type=web" n'a pas pu etre cacher...
    J'ai chercher des heures et je n'arrive a trouver de solution. Est ce que vous savez d'ou ca vient ?

    Merci beaucoup

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est cette page search.php?... qui t'intéresse et que tu veux mettre en cache ? Visiblement, des en-têtes HTTP demandant la non mise en cache sont envoyés soit par Apache, PHP ou par ton script. C'est là qu'est le problème pour le cache : les en-têtes disent de ne pas mettre en cache donc mod_cache ignore le fichier.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

Discussions similaires

  1. Apache et Cache-Control
    Par Nayas dans le forum Apache
    Réponses: 1
    Dernier message: 22/06/2008, 00h19
  2. timeout caches php/mysql/apache
    Par sallagoi dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 15/02/2008, 12h14
  3. Réponses: 2
    Dernier message: 22/12/2005, 18h16
  4. [config apache] cache et performance
    Par ould dans le forum Apache
    Réponses: 3
    Dernier message: 12/10/2005, 12h18
  5. Afficher les fichiers cachés avec apache ?
    Par Michaël dans le forum Apache
    Réponses: 2
    Dernier message: 20/12/2004, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo