Enviar pesquisa
Carregar
VarnishではじめるESI
•
17 gostaram
•
11,469 visualizações
Iwana Chan
Seguir
WEBサーバ勉強会#5で発表した内容です
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 28
Baixar agora
Baixar para ler offline
Recomendados
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
Openresty
Openresty
ogawatti
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
静的サイトどこにする?
静的サイトどこにする?
ogawatti
Hive undocumented feature
Hive undocumented feature
tamtam180
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
Recomendados
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
Openresty
Openresty
ogawatti
Nuxt.js + microCMS + netlify
Nuxt.js + microCMS + netlify
ogawatti
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
静的サイトどこにする?
静的サイトどこにする?
ogawatti
Hive undocumented feature
Hive undocumented feature
tamtam180
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
動画共有ツール
動画共有ツール
tamtam180
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
Atsu Yamaga
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Dive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
Yesod on Heroku
Yesod on Heroku
Takahiro Himura
Webサーバ勉強会03
Webサーバ勉強会03
oranie Narut
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
Kohei Hoshi
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
Slub data structure
Slub data structure
Masami Ichikawa
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Nodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
Iwana Chan
Mais conteúdo relacionado
Mais procurados
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
動画共有ツール
動画共有ツール
tamtam180
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
Atsu Yamaga
LINQ in Unity
LINQ in Unity
Yoshifumi Kawai
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
Daiki Ichinose
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
Dive into dockerネットワーク
Dive into dockerネットワーク
Kazuyuki Mori
Yesod on Heroku
Yesod on Heroku
Takahiro Himura
Webサーバ勉強会03
Webサーバ勉強会03
oranie Narut
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
hiboma
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
Kohei Hoshi
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
Slub data structure
Slub data structure
Masami Ichikawa
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Hiroshi SHIBATA
Nodejuku01 ohtsu
Nodejuku01 ohtsu
Nanha Park
Mais procurados
(20)
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
C#次世代非同期処理概観 - Task vs Reactive Extensions
C#次世代非同期処理概観 - Task vs Reactive Extensions
動画共有ツール
動画共有ツール
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
LINQ in Unity
LINQ in Unity
CMSとPerlで遊ぼう
CMSとPerlで遊ぼう
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Dive into dockerネットワーク
Dive into dockerネットワーク
Yesod on Heroku
Yesod on Heroku
Webサーバ勉強会03
Webサーバ勉強会03
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Slub data structure
Slub data structure
Webサーバのチューニング
Webサーバのチューニング
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
Nodejuku01 ohtsu
Nodejuku01 ohtsu
Semelhante a VarnishではじめるESI
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
Iwana Chan
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
Iwana Chan
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
System4 comment h
System4 comment h
Jun Chiba
TwentyTwelveの子テーマつくったらハマった話
TwentyTwelveの子テーマつくったらハマった話
Cherry Pie Web
SocketStream入門
SocketStream入門
Kohei Kadowaki
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまで
Takashi Uemura
アプリコンテスト
アプリコンテスト
Tomonori Yamada
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
CHY72
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
Takashi Uemura
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Yosuke HASEGAWA
おしべめしべ
おしべめしべ
puriketu99 --
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
adachij2002
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
emasaka
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
Satoshi Shimazaki
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
Shuyo Nakatani
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
Semelhante a VarnishではじめるESI
(20)
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
tokyo.vcl発表資料(VarnishCache3.0新機能とVUPの仕方)
Asset Pipeline for Perl
Asset Pipeline for Perl
System4 comment h
System4 comment h
TwentyTwelveの子テーマつくったらハマった話
TwentyTwelveの子テーマつくったらハマった話
SocketStream入門
SocketStream入門
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまで
アプリコンテスト
アプリコンテスト
FM音源をいじれるWebサービスを作った
FM音源をいじれるWebサービスを作った
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
おしべめしべ
おしべめしべ
HDPをWindowsで動かしてみた
HDPをWindowsで動かしてみた
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
OSC 2011 Hokkaido 自宅SAN友の会(後半)
OSC 2011 Hokkaido 自宅SAN友の会(後半)
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Mais de Iwana Chan
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
Iwana Chan
Varnish Cache inline-C/VMOD guidebook
Varnish Cache inline-C/VMOD guidebook
Iwana Chan
Lost in Translation:varnishlog, varnishtest(VUG7)
Lost in Translation:varnishlog, varnishtest(VUG7)
Iwana Chan
Varnishのログの眺め方
Varnishのログの眺め方
Iwana Chan
できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~
Iwana Chan
画像キャッシュだけじゃないVarnish(qpstudy02 飛び入りLT)
画像キャッシュだけじゃないVarnish(qpstudy02 飛び入りLT)
Iwana Chan
Mais de Iwana Chan
(6)
Varnish 4.0 Release Party in Tokyo発表資料
Varnish 4.0 Release Party in Tokyo発表資料
Varnish Cache inline-C/VMOD guidebook
Varnish Cache inline-C/VMOD guidebook
Lost in Translation:varnishlog, varnishtest(VUG7)
Lost in Translation:varnishlog, varnishtest(VUG7)
Varnishのログの眺め方
Varnishのログの眺め方
できる!Varnish ~もう一歩踏み出すためのTips~
できる!Varnish ~もう一歩踏み出すためのTips~
画像キャッシュだけじゃないVarnish(qpstudy02 飛び入りLT)
画像キャッシュだけじゃないVarnish(qpstudy02 飛び入りLT)
VarnishではじめるESI
1.
VarnishではじめるESI
2012/03/29 いわなちゃんさん(@xcir)
2.
自己紹介 ●
いわなちゃん(さん) (@xcir) ● ソーシャルゲームをやってる会社で VarnishやらC#やらPHPやったり ● 六本木にいます ● アルパカが好きです ● 会場がCAなのでアメーバ水が欲しいです!! 絡んでくれると喜びます!
3.
キャッシュって要は静的コンテンツ しか適用できないよね?
CSSとかJavascriptとか画像とか・・・
4.
キャッシュって要は静的コンテンツ しか適用できないよね?
いいえ(半分)違います。
5.
そもそも静的コンテンツってなんだろう
画像? HTML1枚のページ? CSS?
6.
そもそも静的コンテンツってなんだろう
LLで生成したページは 動的?静的?
7.
動的?静的?
ブログ名を 変更するまで 静的 管理ページで 変更するまで 静的 新しい投稿が 新しい投稿が あるまで静的 あるまで静的
8.
動的?静的? 実は多くの動的とされている コンテンツは静的コンテンツの
組み合わせが多い
9.
動的?静的?
ログインユーザ ごとに静的
10.
動的?静的? やっぱり静的の組み合わせ
11.
動的?静的?
+ + + + + + + Aさんの要求するページ Bさんの要求するページ
12.
動的?静的?
ユーザによって 出る内容が違うのなら ページをキャッシュ出来ない?
13.
動的?静的? こういう場合はプログラム側で キャッシュしたりして組み立てたり
することが多いです (Memcacheとかで)
14.
ESI! ESI! ESI!
ページ全体でキャッシュ できないのなら 要素ごとにキャッシュすればいいじゃない!
15.
ESIとは
(Edege Side Includes) 2001年にAkamaiやOracleなどが策定 Webページの要素を動的に構成する仕組み http://www.w3.org/TR/esi-lang 特殊なタグをコンテンツに埋め込んで使う <esi:include src=”url”> 指定URLからコンテンツを取って埋め込む などなど Varnishは一部のタグのみサポートしてます
16.
VarnishでESI!
Aさんの要求するページ 要素を結合 Bさんの要求するページ
17.
VarnishでESIを使ってみよう default.vcl
esi.html ------------------------------------------ ------------------------------------------ backend default{ <html> .host="localhost"; <body> .port="81"; 20sec <esi:include src=”/a.php”> } 2sec <esi:include src=”/b.php”> </body> sub vcl_fetch{ </html> set beresp.do_esi = true; } a.php ------------------------------------------ これだけで有効に <?php header('Cache-Control: max-age=20');?> <div> <?php echo date('Y/m/d H:i:s');?> </div> b.php ------------------------------------------ <?php header('Cache-Control: max-age=2');?> <div> <?php echo date('Y/m/d H:i:s');?> </div>
18.
VarnishでESIを使ってみよう Apache直
Varnish経由 20secと2secの時刻がずれているので キャッシュされているのがわかる
19.
ねっ 簡単でしょ?
20.
VarnishでESIを使う理由 今回のは明示的にmax-ageを指定しましたが
実際はテンプレートで キャッシュ時間を指定したい! (こんな感じで) esi.html ------------------------------------------ <html> <body> 20sec <esi:include src=”/a.php?ttl=120s”> 2sec <esi:include src=”/b.php?ttl=10s”> </body> </html> VCLで拾ってTTL設定も簡単 などなど細かい制御が容易な Varnishがおすすめ!
21.
ESIは銀の弾丸ではない
素晴らしいESIですが 入れれば即100倍界王拳とは行きません たとえば キャッシュができないコンテンツ(携帯での広告) 極端に更新間隔の短いコンテンツ etc... いろいろ適用が難しい場合もあります キャッシュの一つの手段として 考えてもらえば幸いです
22.
VarnishでESIで使う際の注意 ESIの解釈が行われるためには
コンテンツの最初が「<」で 始まる必要があります もしこれ以外で行いたい場合は 起動パラメータに -p esi_syntax=0x00000001 を付与してください
23.
VarnishでESIで使う際の注意
ユーザー毎に出しわけをする 要素を含む場合は 必ずvcl_hashでその値を追加してください でないと全てのアクセスで 同じ結果が出るという悲しい事態に・・・ Varnishはオブジェクトを特定するのにHashを使います そのHashを生成するキーにユーザIDを含めるようなイメージです(クッキーから抽出とか)
24.
VarnishでESIで使う際の注意 ESIの要素が複数ある場合
今のバージョンのVarnishでは 並列ではなく逐次取得します (将来は対応するみたいです)
25.
VarnishでESIで使う際の注意 ESIはセッションワークスペースを
たくさん使用します そのためデフォルト値(64k) では足りない可能性があるので 大きめに指定すると良いです 例えば5MBとか指定しても100KBしか使わなければ 実使用サイズは100KBです
26.
VarnishでESIで使う際の注意
ESIの要素がエラーで アクセス出来ない場合に こうならないように エラー時の挙動を 制御したほうがよいです
27.
VarnishでESIで使う際の注意 default.vcl ------------------------------------------ import std; backend default{
.host="localhost"; /tmp/hoge.txt .port="81"; ------------------------------------------ } もう眠いです(:3[__]) sub vcl_fetch{ if(beresp.status>=400){ error(beresp.status); } set beresp.do_esi = true; } sub vcl_error{ synthetic std.fileread("/tmp/hoge.txt"); return(deliver); } たとえばこんな感じでエラーを埋め込むとか (VCL内でマルチバイト文字を入れると化けます)
28.
ご清聴ありがとうございました
Baixar agora