2009-04-08 99 views
4

我有一个网站是动态的,从数据库生成大量数据,但数据库的内容很少变化(约为1-3倍一周)。这些更改是手动和控制的。生成“动态”网站的静态版本的最佳方法

而不是动态网站的开销,我宁愿使用静态页面。我辩论什么是最好的解决办法:

卷曲/ wget的/蜘蛛

question提到它。我看到的缺点可能是:

  • 手动清理需要(链接,图像丢失等)
  • 不能混用

代理

我可以静态和动态页面使用代理将静态页面缓存一定天数。缺点:

  • 难以管理的每个页面的缓存
  • 需要每次手动更改后清除缓存?

使用程序生成静态页面

我现在的选择:我用Perl程序来生成动态内容的静态页面。这不能很好地扩展,因为我必须对许多HTML进行硬编码,尤其是页面结构

其他任何方式来完成它?你会/你喜欢什么?

回答

4

Memcache基础全页缓存,具有很长的过期时间。 Tag extension可能允许您仅使选定范围的页面无效。

+0

Waht你会用来从memcache提供页面吗? – Julien 2009-04-08 22:26:30

+0

手头上,nginx webserver支持memcache。使用脚本始终是一种选择。 – epochwolf 2009-04-08 23:26:00

+0

@ Julien:关于任何事情。你用什么服务动态页面? – vartec 2009-04-09 07:22:34

2

任何特定的原因,你想这样做,而不是只是建立一个database caching解决方案停止查询实际上必须击中数据库?

是否可能取决于您网站上的动态数据量以及您的服务器中可用的内存量,但不会有任何您担心的问题。

1

我会像现在这样做,使用脚本生成静态页面。您可以使用模板系统来避免每次都编写新的HTML。

0

您还没有提及将数据更改尽快显示给用户的重要性。

我们已经成功地为我们的网站使用了代理缓存来处理动态页面,从而获得大量点击。根据我们希望客户看到更新数据的时间,我们为每个类别保留不同的缓存时间。