gpt4 book ai didi

Apache SSL Plone 4.2 随机代理错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:18:41 26 4
gpt4 key购买 nike

我在 ssl.conf Apache 文件中设置了带有 Plone 4.2 和 SSL 的 Apache,规则如下:

RewriteEngine On
ProxyVia On
Redirect permanent / https://mywebsite.com/PloneSite/subfolder
RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/https/%{SERVER_NAME}:443/VirtualHostRoot/PloneSite/subfolder/$1 [L,P]

但是,大约每天一次到两次(看似随机),站点会变得非常慢并最终开始提供 502 错误(代理错误)。似乎唯一可以修复它的方法是使用“plonectl restart”重新启动 plone。我真的不知道是什么原因造成的,上面是否有任何规则似乎不正确?

最佳答案

这不是代理设置问题; Plone 的 Apache 代理规则要么有效,要么无效。代理错误是由 Plone 不再响应引起的,这就是为什么重新启动 Plone 可以暂时解决问题。

您需要找出 Plone 停止响应的原因。这可能有多种原因,您必须查明发生了什么。

  • 您可能会遇到编程错误,该错误会永远占用您站点的一部分中的线程。一旦线程用完,Plone 将无法再处理正常请求,并且您会收到代理错误。你可以使用 Products.signalstack当您的网站不再响应时,了解您的线程正在做什么。

  • 这可能是您的 ZODB 缓存遭到破坏;例如,如果网络爬虫试图在短时间内连续加载您网站的所有,它可能会导致大量缓存流失,以至于需要一段时间才能重建您的目录缓存。仔细查看您的日志文件(来自 Apache 和 Plone 实例)并寻找模式。

    在这种情况下,您要么必须阻止爬虫,要么安装更好的缓存以减轻 Plone 服务器上的负载(Varnish 在此类缓存设置方面做得很好,并进行了一些仔细的调整)。

  • 一些没有经验的目录使用可能会破坏您的 ZODB 缓存,并产生相同的结果。在我见过的一个(非常糟糕的)情况下,某些代码会从目录中查找特定类型的所有对象,对这些结果调用getObject()(将每个对象加载到内存中),然后将庞大的集合过滤为实际需要的少数几个对象。相反,目录应该用于在加载对象本身之前显着缩小要加载的对象列表。

  • 可能是您没有利用 ZODB Blob;存储在磁盘上并直接从磁盘而不是 ZODB 对象提供服务的大文件可以显着节省内存缓存。

总而言之,这可能需要一些工作来解决,具体取决于根本原因。

关于Apache SSL Plone 4.2 随机代理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com