问题
默认情况下,是否有办法限制为每个Sitecore网站创建的MediaCache文件夹的大小? Sitecore 6.2文档说它不可能,但我们使用的是6.4.1。
背景
我们有一个部署到三个负载均衡的Sitecore服务器的网站。我们的Search Appliance专门使用其中一台服务器来索引我们的网站内容。由于它比普通用户更快地浏览我们的网站并消耗更多数据,因此我们网站(/ App_Data / MediaCache /网站)的MediaCache文件夹填满了该Web服务器上的磁盘。我想我们可以在该服务器上完全禁用媒体缓存,但我们希望尽可能保持每个Web服务器之间的配置相同。
思想?
答案 0 :(得分:2)
MediaCache文件夹填满的问题是什么?我猜你在那台服务器上有很多媒体项和/或小(ish)磁盘大小?我还假设你没有使用Lucene作为索引,而是一个爬虫会访问每个页面并“废弃”html,就像谷歌一样?为什么爬虫要求图像,而不仅仅是HTML标记?
我不知道有什么设置,可能会有一些东西,但这意味着要查看dotPeek中的Sitecore内核。
但是,使用现在的内容,您必须对该服务器上的配置文件进行更改。
您可以将MediaCache文件夹清理任务设置为更快/更频繁地运行,但是您需要将父代理间隔设置为相同,因此它只意味着更多的Sitecore聊天。
<agent type="Sitecore.Tasks.CleanupAgent" method="Run" interval="00:01:00">
<files hint="raw:AddCommand">
<remove folder="/App_Data/MediaCache" pattern="*.*" maxAge="00:01:00" recursive="true" />
</files>
</agent>
就个人而言,我只会使用patch config file来禁用该文件夹的MediaCache。但是,如果真的有那么多数据用完磁盘空间,那么请确保正确设置服务器架构,否则将会有大量网络流量。如果您在3台服务器之间有一个共享数据库,那么这可能是一个问题。
将以下内容添加到.config文件中,并将其放在索引服务器上的/ App_Config / include /文件夹中。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<settings>
<setting name="Media.CachingEnabled" value="false" />
</settings>
</sitecore>
</configuration>
或者对于特定网站,只需修补<site name="website">
元素并添加cacheMedia="false"
。
如果您的索引服务器与前端服务器具有不同的URL,那么您可以考虑让索引服务器输出媒体项的完整URL,以便它们指向前端服务器。这样,图像将被缓存在这些服务器上。