0

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

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

请求 > Web 服务器 > 调用 php > 连接到 db 服务器 > php 生成带有 db 信息的 html > html 返回给客户端

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

db 更新 > Web 服务器生成 html > 为请求缓存的 html 页面

这样每次有请求时,它都会变成这样:

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

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

4

1 回答 1

0

除了从您的网络服务器进行缓存之类的解决方案之外,您可以通过两种主要方式来解决此问题,这在很大程度上取决于您想要缓存的原因。

  1. PHP 脚本导致服务器负载过重,而您无法解决这个问题:无法更换或升级硬件,也无法优化您的 PHP 代码。这是您可以生成静态 (HTML) 内容并将其提供给用户的唯一方案。我真诚地怀疑情况是否如此,因为您失去了身份验证等。

  2. (外部)数据库服务器的负载很重。考虑在您的 PHP 脚本中缓存结果,并为条目使用相对较长的过期时间,因为对数据的更改很少。

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

于 2014-09-21T22:29:16.330 回答