【问题标题】:TYPO3 cache warmup with crawler not workingTYPO3 缓存预热,爬虫不工作
【发布时间】:2020-10-22 06:26:23
【问题描述】:

我的 TYPO3 安装中的缓存有一个奇怪的行为:

情况:

  • TYPO3 v9.5.22
  • 页面缓存存在
  • 该页面只能由特定的 FE 用户组访问
  • 缓存是使用 EXT:crawler 构建的(配置是使用所需的 FE 用户组 设置的)

第一次测试

  • 我使用 FE 用户 和所需的 FE 用户组 登录

结果:
页面在第一次请求时需要很长时间,在第二次请求时运行速度很快 → 感觉好像缓存不存在,而是使用第一个请求构建的

第二次测试

  • 在第一次测试中仍然使用相同的 FE 用户 登录
  • 还以 BE 用户 身份登录并激活了 adminPanel
  • adminPanel 中的设置:
    • “无缓存”没有勾选(所以应该使用缓存)

结果:
与第一次测试中的行为相同,adminPanel → TypoScript 显示页面已构建 (Page generation),因此 使用缓存

第三次测试

  • 第二次测试的所有设置
  • adminPanel 中的设置:
    • 模拟FE用户组→选择需要的FE用户组

结果:
快速响应,adminPanel 显示使用了缓存。

我的结论:

  • 一般作品中的缓存
  • 预热失败不知何故 → 爬虫配置可能是假的?

这种行为的原因是什么?
我的配置是假的吗?
TYPO3 中的其他一些设置会造成这种情况吗?

【问题讨论】:

  • 请注意,当从同一个浏览器会话登录后端时,某些缓存(例如 FE-Page-Cache)会被绕过。
  • 我在爬虫方面遇到了问题,特别是性能和停止爬取错误。我写了一个小 bash 脚本,用于预热缓存。它自动与具有多个站点的配置基础一起工作,并使用 sitemap.xml 进行爬网。如果您有兴趣:gitlab.com/tgaertner/t3warmup
  • 但是 FE-Page-Cache 被绕过了,当我以 BE 用户身份登录时,这两种情况(第二次和第三次测试)不应该很慢吗?在第三个测试中,它被缓存了......页面访问受限,因为我解释你的脚本它无法访问这些页面!?
  • 我不确定,也许 adminPanel 在这里有所作为。是的,你是对的 - 脚本无法抓取访问受限页面。

标签: caching web-crawler typo3 typo3-9.x


【解决方案1】:

问题如下:

  • 该页面的访问受限于单个 FE 用户组
  • 在爬虫配置中,我只添加了访问页面所需的单个 FE 用户组
  • FE 用户两个 FE 用户组

不考虑爬虫缓存的原因取决于 TYPO3 缓存的工作方式:

  • TYPO3 获取用户的所有 FE 用户组
  • 这些FE 用户组是计算哈希的输入参数之一。
  • 此哈希是一个标识符。它用于检查是否已经使用这些参数构建了缓存。
  • 我的爬虫只设置了一个 FE 用户组,但我的测试用户有两个。
  • 这就是哈希值不同的原因。所以不考虑爬虫创建的缓存。

因此解决方案是:为用户可能拥有的每个可能的 FE 用户组 配置创建一个爬虫配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多