在内容发布事件上向缓存服务器发送http清除
bethel.silva.purge的Python项目详细描述
bethel.silva.purge
目录
-
bethel.silva.purge
- 简介
- 在席尔瓦的操作
- 修改时
- 在发布时
- 生成了哪些清除URL? UL>
- 对象事件
- 发布事件
简介
这个包是对plone.cachepurging提供清除支持的包装器。 为了席尔瓦的满足。清除席尔瓦的内容是触发时,该内容是 更改或发布。
许多Silva站点都位于缓存代理服务器(例如Varnish、Squid和 磅等)。缓存服务器将缓存Silva内容,直到其过期。为了 最重要的是这是一件好事,只要缓存 席尔瓦的标题设置正确。
但是,当重新发布缓存页或 关闭。缓存服务器将继续为缓存页提供服务,直到它 到期,即使在席尔瓦有新的内容。上的旧内容 缓存服务器称为"过时"。
此扩展为Silva根添加了净化服务。这项服务 用于启用清除、指定缓存服务器和配置的选项 plone.cachepurging-style简单的虚拟主机(重命名为域翻译)。 还支持复杂的虚拟主机情况,其中许多 虚拟主机是从一根席尔瓦根的不同区域提供的(这是 称为路径转换)。
实际清除请求在请求完成后通过 zpublisher.pubEvents.pubSuccess事件。每个清除路径都放入队列中 多个工作线程在队列上操作,直到为空。这是个甜点 具有plone.cachepurging的特性,因为它不会减慢对 客户端,
注意:虽然安装和配置这个扩展很容易,但你要做功课! 阅读plone.cachepurging文档并确保您理解 净化的基本原理。
在Silva中的操作
在Silva中修改或发布内容时,将触发清除事件。
这个包用ipurgeable接口标记silvaoobject。这使得 在iobjectmovedevent和iobjectmodifiedvent上清除。这应该包括 容器(例如,保存容器的元数据)。FMI见: 自动清除对象
如果对象事件用于索引文档,容器也会被清除。
iversion有一个ipublishingevent订阅服务器,它在每个 发布事件(发布、请求批准、过期、批准等)。同时 这将导致在不影响已发布的 版本,唯一的效果是内容被清除,并且需要 重新获取。
这会导致清除icontent对象,而不是iversion对象,因为 没有缓存。
如果对象事件是针对索引文档的,则容器也会被清除。
生成了什么清除URL?
为每个事件生成多个清除URL。以下说明了 在按域或路径转换之前生成的路径。
对象事件
标准plone.cachepurging路径:对象的完整根路径。为了
可发布的内容,这将是版本的路径,例如
/silva/example.com/doc/1.
[启用路径转换]索引对象将为容器添加路径,
有或没有斜线。例如,对于/silva/example.com/folder/index上的事件:
/silva/example.com/folder/文件夹
/silva/example.com/folder/
[启用域转换]相对于Silva根的路径。例如
/席尔瓦/文件夹/文档:
/文件夹/文档
< > >
标准plone.cachepurging路径:对象的完整根路径。为了 可发布的内容,这将是版本的路径,例如
/silva/example.com/doc/1.
[启用路径转换]索引对象将为容器添加路径, 有或没有斜线。例如,对于/silva/example.com/folder/index上的事件:
/silva/example.com/folder/文件夹 /silva/example.com/folder/
[启用域转换]相对于Silva根的路径。例如 /席尔瓦/文件夹/文档:
/文件夹/文档
发布事件
标准plone.cachepurging路径:对象的完整根路径。为了
可发布的内容,这将是版本的路径,例如:
< Buff行情>
/silva/example.com/doc/1
[启用路径转换]指向icontent的路径,例如:
< Buff行情>
/silva/example.com/doc
[启用路径转换]索引对象将为
包含或不包含尾随斜线的容器。例如,对于
/silva/example.com/folder/index:
< Buff行情>
/silva/example.com/folder/文件夹
/silva/example.com/folder/
[启用域转换]相对于Silva根的路径。
例如,for/silva/folder/doc:
< Buff行情>
/文件夹/文档
< > >
标准plone.cachepurging路径:对象的完整根路径。为了 可发布的内容,这将是版本的路径,例如:
< Buff行情>/silva/example.com/doc/1
[启用路径转换]指向icontent的路径,例如:
< Buff行情>/silva/example.com/doc
[启用路径转换]索引对象将为 包含或不包含尾随斜线的容器。例如,对于 /silva/example.com/folder/index:
< Buff行情>/silva/example.com/folder/文件夹 /silva/example.com/folder/
[启用域转换]相对于Silva根的路径。 例如,for/silva/folder/doc:
< Buff行情>/文件夹/文档
安装
要安装服务,请激活 服务扩展。安装此扩展将a plone.registry 安装到 席尔瓦树根并注册为本地公用事业。注册表由 plone.cachepurging以存储其配置。
配置
通过zmi管理屏幕配置服务。配置将 更改plone.cachepurging的plone.registry设置,并配置 复杂vhosting的路径转换。
2。设置缓存代理
需要将所有前端缓存服务器添加到此字段。每个的格式 是一个uri,例如http://cachingserver.example.com:6081" rel="nofollow">http://cachingserver.example.com:6081
第3页。复杂的虚拟主机(也称为路径转换)
一些席尔瓦设施可以为mult服务一个席尔瓦内的IPLE域 根。这些区域可能位于席尔瓦根的下面,例如。 /silva_root/domain1,/silva_root/domain2,等等,如果是这样的话, plone.cachepurging vhosting支持不够。路径转换需要 代替使用。
路径转换只是关于如何将根路径转换为 虚拟主机字符串。
要启用复杂的vhosting,请选中"使用路径转换"字段。
通过每行添加一个路径转换来配置路径转换。格式为 每一行是"根路径+''+转换路径"。比如说 在/silva/example.com/有一个vhost。这是从域访问的 http://example.com 。此路径转换的行将是:
< Buff行情> /silva/example.com/virtualhostbase/http/example.com:80/silva/www/virtualhostroot路径转换支持多个vhost到同一根。如果www.example.com points/silva/example.com还可以添加一行:
< Buff行情> /silva/example.com/virtualhostbase/http/www.example.com:80/silva/www/virtualhostroot此外,还可以提供https vhost:
< Buff行情> /silva/example.com/virtualhostbase/https/www.example.com:443/silva/www/virtualhostroot支持由内向外托管(使用vh段),事实上 任何字符串都可以作为"转换路径"提供。关键是 生成的路径是否与缓存服务器缓存的路径匹配,或否 内容将被清除。
在生成清除url时,任何匹配的路径都将具有匹配的 部分替换为vhost字符串,用于所有匹配项。搜索匹配路径从对象的完整路径开始,然后沿着路径前进, 删除每个通道上的最后一个路径组件。
4。域翻译
配置plone.cachepurging虚拟主机支持。这个包裹包括两个 虚拟主机支持的类型,因此plone.cachepurging样式被重命名 "域转换"。这种方法重写了从席尔瓦根 到虚拟主机URL。
若要启用,请选中"使用域转换",然后在"域"中添加域 字段
有关此类virtualhost如何工作的更多信息,请参见 plone.cachepurging文档