カスタム アプリを実行している Apache2/PHP5 サーバーで有効にしたところmod_mem_cache
、結果に愕然としました。突然、間違った画像が提供されるようになり、HTML ページのリクエストに対して CSS ページが提供されることも一度ありました。原因は何でしょうか? 構成は次のとおりです。
キャッシュ有効メモリ / Mキャッシュサイズ 204800 キャッシュデフォルト有効期限 3600 CacheIgnoreHeaders 設定 Cookie MCacheMinObjectSize 100 MCacheMaxObjectSize 5242880 MCacheRemovalAlgorithm LRU
答え1
mod_cache と mod_*_cache の内部では、ルックアップ キーは正規の URI と Vary: パラメータ (ネゴシエートされたコンテンツ用) の非常に長いチェックサムです。これらのルックアップ キーが衝突する可能性は非常に低いため、上記の構成で誤った応答が返される場合はバグのようです。
私はキャッシュモジュールの作者の一人です。リクエストの詳細を私にメールで送っていただければ([メールアドレス]) そして[メールアドレス]または、再現に使用できる詳細を添えてバグを報告してください。バグレポート- 私たちはそれに乗ることができます。
または、お気軽にこちらに投稿してください。問題を解決いたします。
答え2
問題が見つかりました。存在しないファイルへの URL を PHP スクリプトに書き換えるために mod_rewrite を使用していました。PHP スクリプトはそれらの URL を適切なモジュールにディスパッチします。これらの仮想 URL はすべて同じ URL に書き換えられていたため、mod_cache が混乱していました。この問題を解決するために、Apache 構成の次の部分を変更しました。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /dispatch.php
に:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /dispatch.php/$1
そして今ではキャッシュは完璧に機能しているようです!