Apache文件缓存

4
Apache如何处理某些文件的缓存,是否可以通过给定主机或虚拟主机的标准配置文件明确指定某些文件应该比其他文件更积极地缓存?
为了让这个问题更具体化,我把很多网站内容放在各种XML文件中,并且我想能够说这个文件将被频繁使用,因此尽可能多地缓存它..?Apache会智能地实时执行这种操作吗?它会观察哪些文件比其他文件更受欢迎,并尝试相应地匹配缓存命中吗?
有很多问题,但基本思路应该很清楚。
编辑:要明确一点,这些是由PHP加载和解释的资源文件-但是PHP作为一个进程是在Apache内部生成的..对此请帮忙!
2个回答

7
  1. Apache只是一个Web服务器。它不知道你的应用程序的具体情况,所以缓存结果是你的应用程序的责任。
  2. 你可以在Apache中使用无感知应用程序模块-mod_cache。此外,请参阅文章Caching Dynamic Content with Apache httpd中的配置示例。该模块允许你指定什么应该被缓存,什么不应该被缓存。
  3. 此外,你可以使用一些特定于PHP的缓存机制,例如Alternative PHP Cachememcached

当PHP在Apache中运行时,例如,请求使用资源(比如脚本、XML或其他)时,请求是由Apache处理和发起的,对吗?所以,如果你正在配置Apache使用缓存扩展,这也适用于任何PHP资源请求..? - danp
2
Apache只是将用户请求传递给您的PHP脚本,并返回用户生成的内容。 Apache不知道您的域区域,业务规则等信息。如果您生成的内容可以缓存(例如stackoverflow上的此问题-如果下一个请求不会收到最新信息,则几乎总是可以接受),则可以配置Apache缓存生成可缓存内容的特定URL。如果您生成的内容应受到保护并/或涉及机密信息(例如付款系统中的帐户信息页面),则将其缓存是错误的。 - uthark

1
如果您直接从Apache提供XML文件,没有使用CGI脚本或语言模块,比如PHP,那么您应该查看mod_file_cache。根据您的描述,我认为这就是您要找的东西。

很有趣,但XML都是通过PHP解析的,所以我不确定这是否特别是解决方案。 - danp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接