Debian Squeezeのdav2fsキャッシュの問題

Debian Squeezeのdav2fsキャッシュの問題

私はapache/mod_davdavfs2すべて同じホストにいます。davfs2Apacheサービスの内容をローカルファイルシステムにマウントするために使用されます(一種のループバック)。目的は、提供されたファイルコンテンツが動的であり、PHPを介してpostgresデータベースから来ることです。この場合、ファイルは定期的に変更され、メールプログラムから読み取られるEメールフッター/免責事項です。

cpこれはほとんどうまく機能しますが、davディレクトリからファイルシステムの他の部分にファイルを移動しようとすると、cpdavfs2で「ファイルが変更されたことを確認する」が実行されないようです。キャッシュされたコピーのみを取得します。 PHPファイルは変更されず、データベースの内容が更新されたため、動的コンテンツのみが変更されました。

一方、cp5秒後にその操作を繰り返すと、正しいファイルの内容がコピーされます。私は次のスクリプトで終わりました。

#!/bin/bash
cp /root/pgdav/disclaimer.html /etc/postfix/disclaimer.html
sleep 5
cp /root/pgdav/disclaimer.html /etc/postfix/disclaimer.html

PHPのキャッシュ関連ヘッダ設定は次のとおりです。

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

私はfile_refresh 0解決davfs2.confしました

私の質問は:この動作を修正するために欠けている他の設定はありますか?

答え1

私はdavfs2メーリングリストから答えを得て、ここで共有したいと思いました:

davfs2 を開くと、正しい Etag 値に基づいて条件付き GET 要求を送信します。

ETagヘッダーを提供していることを確認した後、問題は消えました。

関連情報