mod_mem_cache가 잘못된 콘텐츠를 제공하고 있습니다!

mod_mem_cache가 잘못된 콘텐츠를 제공하고 있습니다!

mod_mem_cache방금 맞춤형 앱을 실행하는 Apache2/PHP5 서버를 활성화했는데 그 결과에 충격을 받았습니다. 갑자기 잘못된 이미지가 제공되었고, HTML 페이지에 대한 요청이 대신 CSS 페이지를 제공한 것을 발견했습니다! 이 문제의 원인은 무엇입니까? 구성은 다음과 같습니다.

캐시 활성화 메모리 /
MCache크기 204800
캐시기본값 만료 3600
CacheIgnoreHeaders 세트-쿠키
MCacheMinObjectSize 100
MCacheMaxObjectSize 5242880
MCache제거알고리즘 LRU

답변1

내부적으로 mod_cache 및 mod_*_cache 내에서 조회 키는 정식 URI 및 Vary: 매개변수(협상된 콘텐츠용)의 매우 긴 체크섬입니다. 이러한 조회 키가 충돌할 가능성은 매우 낮으므로 위 구성에 대해 잘못된 응답을 받는 경우 버그인 것 같습니다.

저는 캐싱 모듈의 작성자 중 한 명입니다. 요청 세부사항을 저에게 메일로 보내주실 수 있다면([이메일 보호됨]) 그리고[이메일 보호됨], 또는 재현에 사용할 수 있는 몇 가지 세부 정보와 함께 버그를 제출하세요.http://httpd.apache.org/bug_report.html- 우리는 할 수 있어요.

아니면 여기에 게시해 주시면 문제를 해결해 드리겠습니다.

답변2

문제를 발견했습니다. 나는 mod_rewrite를 사용하여 해당 URL을 적절한 모듈로 전달하는 PHP 스크립트에 존재하지 않는 파일에 대한 URL을 다시 작성했습니다. 이러한 모든 가상 URL이 동일한 URL로 다시 작성되었기 때문에 mod_cache가 혼란스러워졌습니다. 이 문제를 해결하기 위해 Apache 구성의 다음 부분을 변경했습니다.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /dispatch.php

에게:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /dispatch.php/$1

이제 캐싱이 완벽하게 작동하는 것 같습니다!

관련 정보