Heroku & Rails - Varnish HTTP Cache Not Workingに似た問題がありますが、解決策 (しばらく待ってからすべてが機能する) が適用されないようです。以下の設定を数日間行いました。
Heroku Google グループのこのスレッドには、同じ問題を抱えているユーザーが何人かいます。彼らは、すべてがキャッシュされるまでに時間がかかると言っていますが、私の理解では、しばらくするとすべてがキャッシュされるはずですよね? それとも、大量のトラフィックがある場合にのみ適用されますか?
キャッシュを適切に機能させるために、どこを見ればよいか、何を変更できるかについてアドバイスが必要です。
私のセットアップ:
Heroku (Rails 3.0.3、Ruby 1.9.2、bamboo-mri-1.9.2) でhttp://www.swingoutlondon.co.ukを実行しています。メイン インデックス ページは多くのデータベース クエリを実行して、基本的に静的なページ - 通常は約 2 ~ 3 秒かかります (はい、これは私が実際に対処する必要があることですが、ワニスのキャッシュがすぐに役立つと思います)。
hereCache-Control
で説明されているように応答ヘッダーを設定しましたが、実際にはページに設定されているようです:
>> curl -I http://swingoutlondon.co.uk
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 13 May 2012 00:01:05 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: public, max-age=300
Etag: "2565201f3ae39c6a9a1f6b1fb8bbbe0a"
X-Ua-Compatible: IE=Edge,chrome=1
X-Runtime: 1.699667
Content-Length: 44224
Accept-Ranges: bytes
X-Varnish: 681634826
Age: 0
Via: 1.1 varnish
ノート:Cache-Control: public, max-age=300
Age: 0
これは、キャッシュされたコピーを取得していないことを示していると思います。実際、コマンドは通常の遅い 2 ~ 3 秒で返されます。
そのカールを繰り返し試行し続けると、キャッシュされたコピーがときどきできます (ページは 0.5 秒未満で読み込まれ、Age
0 より大きくなります)。
HTTP ヘッダーを完全に理解していないことを告白しなければなりませんが、1 つの手がかりは次Age
のX-Varnish
とおりです。
X-Varnish: 848670407 848650521
ここに私がチェックしたものがあります:
- のソースは毎回同じです。
- そのページに
before_filter
は、ページが最後に更新された時刻をインスタンス変数として設定するものがあります。 - 多数の Cookie があります。私が見る限り、それらはすべて Google Analytics または Twitter または Facebook ボタンのいずれかによって設定されます。
参考までに、ここに私の Request ヘッダーを示します。
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Cookie:__utma=264326157.189257391.1336869624.1336869624.1336869624.1; __utmb=264326157.2.10.1336869624; __utmc=264326157; __utmz=264326157.1336869624.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host:www.swingoutlondon.co.uk
If-None-Match:"2565201f3ae39c6a9a1f6b1fb8bbbe0a"
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19