0

ssl.conf私はApacheファイルに次のルールでPlone4.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]

ただし、1日に約2回(一見ランダムに見える)、サイトは非常に遅くなり、最終的には502エラー(プロキシエラー)の処理を開始します。それを修正するように見える唯一のことは、「plonectlrestart」でploneを再起動することです。私はこれを引き起こしているものについて本当に途方に暮れています、間違っているように見える上記のルールのいずれかがありますか?

4

1 に答える 1

1

これはプロキシ設定の問題ではありません。PloneのApacheプロキシルールは機能するか機能しないかのどちらかです。プロキシエラーは、Ploneが応答しなくなったことが原因で発生します。そのため、Ploneを再起動すると問題が一時的に修正されます。

Ploneが応答を停止する理由を理解する必要があります。これにはさまざまな理由が考えられ、何が起こっているのかを正確に特定する必要があります。

  • サイトの一部で、プログラミングエラーが発生する可能性があります。これは、スレッドを永久に拘束するものです。スレッドがなくなると、Ploneは通常のリクエストを処理できなくなり、プロキシエラーが発生します。Products.signalstackサイトが応答しなくなったときに、スレッドの状態をピークにするために使用できます。

  • ZODBキャッシュを破壊した可能性があります。たとえば、Webクローラーがすべてのサイトを短時間で連続して読み込もうとした場合、キャッシュチャーンが多すぎて、カタログキャッシュの再構築に時間がかかる可能性があります。ログファイル(ApacheとPloneインスタンスの両方から)をよく見て、パターンを探します。

    このような場合、クローラーをブロックするか、Ploneサーバーの負荷を軽減するために、より適切なキャッシュをインストールする必要があります(Varnishは、注意深く調整することで、このようなキャッシュ設定をうまく処理します)。

  • 経験の浅いカタログの使用によっては、ZODBキャッシュが破棄され、同じ結果になる可能性があります。私が見た1つの(非常に悪い)ケースでは、一部のコードがカタログから特定のタイプのすべてのオブジェクトを検索し、それらの結果を呼び出しgetObject()(すべてのオブジェクトをメモリにロード)、巨大なセットをフィルタリングして実際に必要となる少数のオブジェクト。代わりに、カタログを使用して、オブジェクト自体をロードする前に、ロードするオブジェクトのリストを大幅に絞り込む必要があります。

  • ZODBブロブを利用していない可能性があります。ZODBオブジェクトからではなく、ディスクに直接保存されて提供される大きなファイルは、メモリキャッシュを大幅に節約します。

全体として、根本的な原因が何であるかに応じて、これは解決するためのいくつかの作業になる可能性があります。

于 2012-10-13T08:56:08.697 に答える