【问题标题】:Best way to generate static version of "dynamic" web site生成“动态”网站静态版本的最佳方式
【发布时间】:2010-10-18 10:17:52
【问题描述】:

我有一个动态的网站,即从数据库生成大量数据,但数据库的内容很少更改(大约每周 1-3 次)。这些更改是手动和受控的。

我更喜欢使用静态页面,而不是动态网站的开销。我正在讨论什么是最好的解决方案:

curl/wget/spider

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

  • 需要手动清理(链接、丢失的图像等)
  • 不能混合静态和动态页面

代理

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

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

使用程序生成静态页面

我目前的选择:我使用 perl 程序从动态内容生成静态页面。这不能很好地扩展,因为我必须对大量 HTML 进行硬编码,尤其是页面结构

还有其他方法吗?你/你喜欢什么?

【问题讨论】:

    标签: perl dynamic-content


    【解决方案1】:

    具有长过期时间的 Memcache 基本全页缓存。 Tag extension 可以让您仅使选定的页面范围无效。

    【讨论】:

    • 你会用什么来提供来自 memcache 的页面?
    • 顺便说一句,nginx 网络服务器支持 memcache。使用脚本始终是一种选择。
    • @Julien:关于任何事情。您使用什么来提供动态页面?
    【解决方案2】:

    您想要这样做而不是仅仅设置database caching 解决方案来阻止查询实际访问数据库的任何特殊原因?

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

    【讨论】:

      【解决方案3】:

      我会按照您现在的方式进行操作,使用脚本生成静态页面。您可以使用模板系统来避免每次都编写新的 HTML。

      【讨论】:

        【解决方案4】:

        您没有提到尽​​快向用户显示更改的数据的重要性。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-27
          • 1970-01-01
          • 1970-01-01
          • 2011-07-06
          • 1970-01-01
          相关资源
          最近更新 更多