2010-01-15 6 views
4

Comment apache gère la mise en cache de certains fichiers, et est-il possible de dire explicitement que certains fichiers doivent être mis en cache plus agressivement que d'autres, via les fichiers de configuration standard d'un hôte ou virtualhost donné? Pour le mettre en contexte, je garde beaucoup de contenu du site dans divers fichiers XML, et j'aimerais pouvoir dire que ce fichier sera beaucoup utilisé, et donc le mettre en cache autant que possible. ? Apache fait-il ce genre de chose intelligemment et à la volée ..? Va-t-il observer quels fichiers sont plus populaires que d'autres et essayer de faire correspondre les hits du cache de manière appropriée?Mise en cache des fichiers Apache

Beaucoup de questions en un, mais l'idée de base devrait être assez claire. Pour être clair, ce sont des fichiers de ressources qui sont chargés et interprétés par PHP - mais php comme un processus est engendré dans Apache .. non? S'il vous plaît aider!

Répondre

7
  1. Apache est juste un serveur Web. Il ne connaît pas spécifique de votre application, c'est donc la responsabilité de votre application de mettre en cache les résultats.
  2. Vous pouvez utiliser le module ignorant l'application dans apache - mod_cache. Voir également l'exemple de configuration dans l'article Caching Dynamic Content with Apache httpd. Ce module vous permet de spécifier ce qui doit être mis en cache et ce qui ne doit pas être mis en cache.
  3. En outre, vous pouvez utiliser un mécanisme de mise en cache spécifique à PHP, par ex. Alternative PHP Cache ou memcached.
+0

Lorsque PHP dans Apache, par exemple, demande une ressource à utiliser (disons un script, xml ou autre), la requête est gérée et provient d'Apache, n'est-ce pas? Donc, si vous configurez Apache pour utiliser une extension de mise en cache, cela s'applique également à toutes les demandes de ressources PHP ..? – dmp

+2

Apache transmet simplement la requête de l'utilisateur à votre script PHP et retourne au contenu généré par l'utilisateur. Si vous générez du contenu qui peut être mis en cache (comme cette question sur stackoverflow - il est presque toujours possible que la prochaine requête ne reçoive pas d'informations à jour), vous pouvez alors utiliser Apache sans connaître votre domaine, vos règles métier, etc. configurez apache pour mettre en cache cette URL spécifique qui a généré du contenu pouvant être mis en cache. Si votre contenu généré doit être sécurisé et/ou implique des informations confidentielles (page d'informations de compte dans les systèmes de paiement, par exemple), il est incorrect de le mettre en cache. – uthark

+0

Répondu à ma question, merci :) – dmp

1

Si vous distribuez les fichiers XML directement à partir d'Apache, sans script CGI ni module de langage intermédiaire tel que PHP, vous devez consulter mod_file_cache. D'après votre description, je pense que c'est ce que vous cherchez.

+0

Son intéressant, mais le XML est analysé par php, donc je ne sais pas si c'est en particulier la solution. – dmp