0

我需要缓存我的主页,这远没有问题,使用反向代理就足够了

但我还需要包含带有独立 (ESI) 的标题部分,以便我可以检查用户是否已连接并显示他的信息“你好文森特”。

问题是如果我这样做,主页(作为每个页面)将不得不测试会话,并且当我使用 PDO 存储时,我可以看到每个用户/页面在 MySQL 上运行 2 个查询。

所以我尝试添加一个简单的“is_connected”cookie,并检查它是否存在以呈现注销版本而不询问会话,但似乎只要我有一个允许匿名用户的防火墙,它就会询问会话。

我的想法不多了,我想看看人们为此做了什么,目标是在主页上根本没有查询。

谢谢

4

1 回答 1

0

主页不需要测试会话。它应该被公开缓存并包含 esi include 标签:

<esi:include src="/home/header_fragment.html" />

只有 header_fragment 资源需要测试用户的登录会话。您可以在签名的 cookie 中存储登录用户信息(姓名、电子邮件等)的小缓存,并在 header_fragment 中读取该信息以确定登录与注销,如果已登录,则显示用户名而不是查找数据存储中的信息。

于 2013-07-17T16:00:43.580 回答