Symfony2のHTTP Cache (Reverse Proxy)

63
Symfony2 HTTPキャッシュ @hidenorigoto 1

description

2011/09/10 PHPカンファレンス2011のLTで発表したもの

Transcript of Symfony2のHTTP Cache (Reverse Proxy)

Page 1: Symfony2のHTTP Cache (Reverse Proxy)

Symfony2HTTPキャッシュ

@hidenorigoto

1

Page 2: Symfony2のHTTP Cache (Reverse Proxy)

自己紹介

• 岐阜

• 日本Symfonyユーザー会

• 温泉ツアードキュメント翻訳勉強会他

• symfony 1.4本

• @hidenorigoto

2

Page 3: Symfony2のHTTP Cache (Reverse Proxy)

今日の話の概要

Page 11: Symfony2のHTTP Cache (Reverse Proxy)

本日の内容

5

Page 12: Symfony2のHTTP Cache (Reverse Proxy)

本日の内容

1.Symfony2でHTTP Cacheを使う方法

5

Page 13: Symfony2のHTTP Cache (Reverse Proxy)

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

5

Page 14: Symfony2のHTTP Cache (Reverse Proxy)

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

3.まとめ

5

Page 15: Symfony2のHTTP Cache (Reverse Proxy)

本日の内容

1.Symfony2でHTTP Cacheを使う方法

2.HTTP Cacheのパフォーマンス

3.まとめ

4.おまけ(時間が余った時)

5

Page 16: Symfony2のHTTP Cache (Reverse Proxy)

翻訳してます

Page 18: Symfony2のHTTP Cache (Reverse Proxy)

翻訳してます

• Symfony2公式ドキュメント(日本語訳)http://docs.symfony.gr.jp/symfony2/book/http_cache.html

•↑ここ読めばおk

Page 19: Symfony2のHTTP Cache (Reverse Proxy)

翻訳してます

• Symfony2公式ドキュメント(日本語訳)http://docs.symfony.gr.jp/symfony2/book/http_cache.html

•↑ここ読めばおk• 力尽きたので

途中までしか訳されていません(明日続きをやるかも)

Page 20: Symfony2のHTTP Cache (Reverse Proxy)

1Symfony2で

HTTP Cacheを使う方法(リバースプロキシキャッシュ)

7

Page 21: Symfony2のHTTP Cache (Reverse Proxy)

とってもカンタン!

Page 22: Symfony2のHTTP Cache (Reverse Proxy)

Symfony2にはリバースプロキシが組み込まれています!

Page 23: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

Page 24: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

Page 25: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

Page 26: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

コメント解除

Page 27: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラでResponseにキャッシュプロパティをセット

Page 28: Symfony2のHTTP Cache (Reverse Proxy)

HTTP Cacheを使う方法(リバースプロキシ)

1.Cache Kernelを有効にする

2.キャッシュを有効にするコントローラでResponseにキャッシュプロパティをセット

Page 29: Symfony2のHTTP Cache (Reverse Proxy)

これだけで、組み込みリバースプロキシの共有キャッシュが動作します

Page 30: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

フレームワーク

Page 31: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

フレームワーク

Page 32: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

フレームワーク

Page 33: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

フレームワーク

Page 34: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュ

フレームワーク

Page 35: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

フレームワーク

Page 36: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

フレームワーク

Page 37: Symfony2のHTTP Cache (Reverse Proxy)

CacheKernel

コントローラ

リクエスト

レスポンス

キャッシュリクエスト

レスポンス(キャッシュから)

フレームワーク

Page 38: Symfony2のHTTP Cache (Reverse Proxy)

2HTTP Cacheのパフォーマンス

13

Page 39: Symfony2のHTTP Cache (Reverse Proxy)

パフォーマンス比較で使われたアプリケーションを手元MacBook Airでab

Page 40: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュなし

Page 41: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュなし

46.24 #/sec

Page 42: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュあり

Page 43: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュあり

180.09 #/sec

Page 44: Symfony2のHTTP Cache (Reverse Proxy)

超特定ケースですが

4倍

Page 45: Symfony2のHTTP Cache (Reverse Proxy)

3まとめ

18

Page 46: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュの適用範囲が広がる

Page 47: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

Page 48: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

Page 49: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

• ページ片の独立キャッシュ(ESI)

Page 50: Symfony2のHTTP Cache (Reverse Proxy)

キャッシュの適用範囲が広がる

• キャッシュ適用の効果が大きい

• 短時間のキャッシュでもメリットがある

• ページ片の独立キャッシュ(ESI)

HTTPキャッシュを積極的に使おう!

Page 51: Symfony2のHTTP Cache (Reverse Proxy)

目指すところ

Page 52: Symfony2のHTTP Cache (Reverse Proxy)

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

目指すところ

Page 53: Symfony2のHTTP Cache (Reverse Proxy)

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

cleanなコード

目指すところ

Page 54: Symfony2のHTTP Cache (Reverse Proxy)

フレームワークの仕組みの中だけで、これまで以上にアプリケーションのパフォーマンスを高められる

cleanなコードcleanなモデルを維持

目指すところ

Page 55: Symfony2のHTTP Cache (Reverse Proxy)

4おまけ

21

Page 56: Symfony2のHTTP Cache (Reverse Proxy)

Varnishを使う

Page 57: Symfony2のHTTP Cache (Reverse Proxy)

Varnishを使う

• Varnish(リバースプロキシ)

Page 58: Symfony2のHTTP Cache (Reverse Proxy)

Varnishを使う

• Varnish(リバースプロキシ)

Page 59: Symfony2のHTTP Cache (Reverse Proxy)

Varnishを使う

• Varnish(リバースプロキシ)

• ESIにも対応

Page 60: Symfony2のHTTP Cache (Reverse Proxy)

Varnishを使う

• Varnish(リバースプロキシ)

• ESIにも対応• 公式ドキュメント

How to use Varnish to speedup my Websitehttp://symfony.com/doc/current/cookbook/

Page 61: Symfony2のHTTP Cache (Reverse Proxy)

5おまけ(2)

23

Page 62: Symfony2のHTTP Cache (Reverse Proxy)

Pinocoが気になった方へ

• @tanakahisateru さんが開発

• ビューにPHPTALを採用

• デザイナーフレンドリー

• https://github.com/tanakahisateru/pinoco

Page 63: Symfony2のHTTP Cache (Reverse Proxy)

是非Symfony2を試してみてください

ご清聴ありがとうございました!