在服务器端缓存HTML页面以减少网络负载

时间:2014-09-21 21:57:43

标签: php html caching network-traffic

我在一个管理其网站代码的小型学校部门工作。大多数代码都是用PHP编写的,并连接到一些单独的数据库服务器来生成HTML页面。由于数据库不经常更新,我想知道有没有办法让php创建HTML页面并保存页面服务器端?基本上,仍然有php生成页面,但只有当数据库发生更改时调用脚本,而不是针对每个请求调用脚本。这样,php生成的HTML页面就会保存在服务器上,并且可以在必须重新生成之前提供给许多客户端。

我知道请求通常是这样的:

请求>网络服务器> php调用>连接到数据库服务器> php生成带有db info>的HTML html返回客户端

我正在寻找更像这样的东西:

db updated>网络服务器生成html>为请求缓存的html页面

每当有请求时,就会这样:

请求>存储在本地的缓存html页面返回给客户端

对此主题的任何建议将不胜感激。看起来这个模型可以节省大量处理器时间,并节省大量流量。

1 个答案:

答案 0 :(得分:0)

从网络服务器中排除缓存等解决方案,有两种主要方法可以解决这个问题,主要取决于您要缓存的原因。

  1. PHP脚本在服务器上造成了很大的负担,而你却无法解决这个问题:没有替换或从硬件升级是一种选择,也没有优化你的PHP代码。这是您可以生成静态(HTML)内容并将其提供给用户的唯一方案。我真的怀疑它是这样的,因为你失去了认证等。

  2. (外部)数据库服务器负载过重。考虑在PHP脚本中缓存结果,并使用相对较长的条目到期时间,因为数据几乎没有变化。

  3. 假设第二个选项的原因是询问的原因,请考虑查看PHP的几个缓存模块,如Fast Cache。但同样,这取决于调查缓存的原因。通常,如果生成部分需要很长时间才能等待,那么基于数据库内容生成静态内容只是一种可行的解决方案。