문제

광고 그래픽(gif, jpg, swf) 게재를 위한 역방향 캐싱 프록시를 설정하려고 합니다.프록싱이 제대로 작동하고 원본 서버에 요청을 보내지만 콘텐츠가 캐시되지 않는 이유를 알 수 없는 것 같습니다.내 현재 구성은 다음과 같습니다.목표는 /ca/ URI 접두사와 일치하는 모든 요청을 캐시하는 것입니다.원본 서버는 원본 서버 헤더에 설정된 Cache-control max-age=1 week, 파일 확장자 없음, 깨끗한 URL을 사용하여 파일을 제공합니다.

ProxyRequests Off
<Proxy *>
 Order deny,allow
 Allow from all
</Proxy>
<IfModule mod_disk_cache.c>
 CacheEnable disk /
 CacheRoot "/var/cache/mod_proxy"
 CacheDirLevels 3
 CacheDirLength 5
 CacheIgnoreCacheControl On 
</IfModule>

RewriteCond %{REQUEST_URI} ^/ca/*
RewriteRule ^/(.*)$ http://origin.webserver.com/$1 [P,L]

현재 제가 본 유일한 캐싱은 프록시 서버에서 액세스되는 로컬 파일의 캐싱입니다. 원본 서버에서 가져온 콘텐츠를 캐시하기 위해 누락된 것이 무엇인지 찾고 있습니다.

콘텐츠가 디스크의 위치가 아닌 원본 서버에서 가져오기 때문에 캐싱하지 않는 mod_cache와 관련이 있는지 궁금합니다.해당 접두사와 일치하는 모든 요청을 강제로 캐시하는 방법을 찾고 있습니다.

감사해요!

추신.- 정확히 다음과 같은 문제가 있는 것 같습니다. http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E.내 권한을 확인하고 디버그 메시지를 살펴보겠습니다...

도움이 되었습니까?

해결책

이러한 지시문을 추가하면 캐시 메커니즘이 제대로 작동하는 것처럼 보였습니다.파일 시스템에서 직접적으로 대신 Symfony/PHP5를 사용하여 이미지를 제공하고 있기 때문에 원본 서버에서 보낸 만료 및 캐시 제어 헤더와 관련이 있다고 생각합니다.

<IfModule mod_disk_cache.c>
    CacheEnable disk /
    CacheRoot "/var/cache/mod_proxy"
    CacheDirLevels 3
    CacheDirLength 5
    CacheIgnoreCacheControl On
    CacheMaxFileSize 100000000
    CacheIgnoreNoLastMod On
    CacheMaxExpire 1209600
    CacheIgnoreQueryString On
</IfModule>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top