8

広告グラフィック (GIF、JPEG、SWF) を配信するためのリバース キャッシュ プロキシを設定しようとしています。プロキシは正常に機能しており、オリジン サーバーにリクエストを送信していますが、コンテンツがキャッシュされていない理由がわかりません。私の現在の設定は以下です。目標は、/ca/URI プレフィックスに一致するすべてのリクエストをキャッシュすることです。配信元サーバーは、クリーン URL、ファイル拡張子なし、max-age=1配信元サーバー ヘッダーにキャッシュ制御週が設定されたファイルを提供しています。

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コンテンツはディスク上の場所ではなく、オリジンサーバーから取得されるため、キャッシュしないことに関係があるのではないかと思います。

そのプレフィックスに一致するすべてのリクエストを強制的にキャッシュする方法を探しています。

PS私はこの正確な問題を抱えているようです: http://mail-archives.apache.org/mod_mbox/httpd-users/200901.mbox/%3C497F6ED3.7080606@gmail.com%3E。権限を確認し、デバッグ メッセージを調べます…</p>

4

1 に答える 1

12

これらのディレクティブを追加すると、キャッシュ メカニズムが作動するように見えました。ファイルシステムから直接ではなく Symfony/PHP5 で画像を提供しているため、オリジンサーバーから送信された有効期限とキャッシュ制御ヘッダーに関係していると思います。

<IfModule mod_disk_cache.c>
    CacheEnable ディスク /
    CacheRoot "/var/cache/mod_proxy"
    CacheDirLevels 3
    CacheDirLength 5
    CacheIgnoreCacheControl オン
    CacheMaxFileSize 100000000
    CacheIgnoreNoLastMod オン
    CacheMaxExpire 1209600
    CacheIgnoreQueryString オン
</IfModule>
于 2009-06-17T21:14:40.013 に答える