Debian Squeeze의 dav2fs 캐시 문제

Debian Squeeze의 dav2fs 캐시 문제

나는 apache/ mod_davdavfs2모두 동일한 호스트에 있습니다. davfs2Apache 서비스의 내용을 로컬 파일 시스템에 마운트하는 데 사용됩니다(일종의 루프백). 목적은 제공된 파일 콘텐츠가 동적이며 PHP를 통해 postgres 데이터베이스에서 오는 것입니다. 이 경우 파일은 정기적으로 변경되고 메일 프로그램에서 읽히는 이메일 바닥글/면책조항입니다.

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 헤더를 제공하고 있는지 확인한 후에 문제가 사라졌습니다.

관련 정보