3月 302012
 

oranieさんが主催しているWebサーバ勉強会という
全員何かしら発表するという勉強会でESIについて発表してきました。

ESIについては結構前にqpstudyでもLTしているのですが
Varnishのバージョンも上がり、いろいろ使いやすくなったので、ここでもう一回とおもいこのテーマで発表しました。
Varnishの利点はやはりその柔軟な設定(VCL)にあると思うので
その利点を生かして、単純に静的ファイルをキャッシュさせるだけではなく
ESIのように複雑なキャッシュをさせるのもいいんじゃないかなと思っています。

また他の方の発表を聞いてfluentdはやっぱり使いたい!と思った所存です。
JSONにどうしてもなるのかなぁと思っていたのですがrawで収集できるようにしたよ!という発表もあり既存とも組み合わせしやすくこれはいいなと考えています。
Apacheについても2.4.1が出た際に僕はEvent MPMばっかに目が言ってたのですが他にも魅力的な機能がありもう一回じっくり見てみようかなと考えています。

非常に刺激を受けた勉強会でした。
また機会があれば是非参加したいと考えています。
参加者の皆様、主催者のoranieさん本当にありがとうございました。

このエントリーをはてなブックマークに追加
はてなブックマーク - Webサーバ勉強会#5でVarnishではじめるESIって発表してきました
Share on Facebook
Share on LinkedIn
Bookmark this on Livedoor Clip
Livedoor Clip - Webサーバ勉強会#5でVarnishではじめるESIって発表してきました
Share on FriendFeed

7月 252010
 

昨日池袋でインフラ勉強会のキユーピー3分インフラクッキングでESIとインラインCについてちょこっと話してきました。
LT自体が始めて+飛び入りLTだということでいろいろ自身にツッコミを入れたいところとか多々あるんですが、次回以降の改善点として考えています。
Continue reading »

このエントリーをはてなブックマークに追加
はてなブックマーク - 画像キャッシュだけじゃないVarnishってテーマで飛び入りLTしてきました(qpstudy#02)
Share on Facebook
Share on LinkedIn
Bookmark this on Livedoor Clip
Livedoor Clip - 画像キャッシュだけじゃないVarnishってテーマで飛び入りLTしてきました(qpstudy#02)
Share on FriendFeed

6月 232010
 

以前書いた記事(VarnishでESIを使うときの注意するべき点)で

Keep-AliveはOFFにするべき

ESI使用時はcontent-lengthがブラウザ側に返却されないようなのでOFFはほぼ必須です
どうしても使いたい場合はESIを使用するときのみkeep-aliveをOFFに・・・

直Varnishはやめた方がいい

Keep-aliveをオフにしても特定のクライアント(ab/wgetなど)で接続が維持されて5秒ほど待ってしまうことがあります
つまりKeep-Aliveが有効かつcontent-lengthがないときの挙動と同じになります
じゃぁどうすればいいか?
自分はフロントにNginxを置いてそこからVarnishにproxyしています

と書きましたがどうやら2.1.X系では改善されたようです

ということで比較してみます
Continue reading »

このエントリーをはてなブックマークに追加
はてなブックマーク - Varnish2.1.2でESIが使い易くなっていた件について(Varnish2.0.6と比較して)
Share on Facebook
Share on LinkedIn
Bookmark this on Livedoor Clip
Livedoor Clip - Varnish2.1.2でESIが使い易くなっていた件について(Varnish2.0.6と比較して)
Share on FriendFeed

2月 202010
 

以下の記事でもチラッと書いたのですがVarnishの現バージョンではESIのTTL指定がesi:includeタグからできません

VarnishでESIを使うときの注意するべき点

単純に考えるのであればvcl_fetchでそれぞれのURLで指定すればいいとも言えるのですが
ESIの利点を多少損なっている感もします
(個人的にはデザイナ側がこのパーツは10分キャッシュしてもユーザに影響しないよ!とか設定できるのが利点と思ってる)
じゃぁどうすればいいのでしょうか
あまりスマートではないですが解決方法があります

例えばdocument root直下にあるhello.htmlを
ESIでincludeしたい場合で10秒のTTLを指定する時に


<esi:include src="/esi/t/10s/hello.html"></esi:include>

こんな感じの記述でできるようになります
Continue reading »

このエントリーをはてなブックマークに追加
はてなブックマーク - VarnishのESIで擬似的にTTLを指定する方法
Share on Facebook
Share on LinkedIn
Bookmark this on Livedoor Clip
Livedoor Clip - VarnishのESIで擬似的にTTLを指定する方法
Share on FriendFeed

2月 082010
 

あんまり話題に上らないで個人的に悔しいVarnishのESI(Edge Side Include)ですが
非常に癖がありますのではまりやすいポイントをとりあえず自分用のメモ程度に

2010/06/23追記:Ver2.1.2では多少注意事項が変わっていますのでこちらも参照ください
そもそもESIってなに?

例えばTwitterのホーム画面で考えてみましょう

ページは様々な要素で構成されていますが大きく分けて二つに分かれます

表示される度に更新しなくてはいけないもの(広告・タイムライン)
表示される度に更新しなくてもいいもの(フォロワーなどの数)

別にフォロワー数を表示するためにPHPを動かして、DBかmemcacheにアクセスして整形して・・・
といった処理をしてもいいのですが
PVが多いWEBサイトの場合、毎回呼ばれる処理はできるだけしたくありません
PHP→memcacheとしても負荷が結構痛いです
そういう時にESIがあると、ページの構成要素ごと キャッシュを行い、Varnish側で組み立てて返却してくれます
PHPやDBまでアクセスがこないので負荷に強くなるとともに、そのキャッシュした構成要素を別の画面で再利用できます

PC向けの場合Ajaxなどもあるので、一概にESIがすごく有効とも言い辛いのですが(例でTwを上げましたがちょっと悪かったかも)
携帯向けなどJSが使えない環境で、毎回一枚のHTMLを出力しないといけない場合非常に効果的です
また転送速度が上がるのでPVが上がるかも しれませんしSEOにも効果がありそうです
(Googleはどれぐらいでページが表示されるかをSEOの評価としてるみたいです)

Continue reading »

このエントリーをはてなブックマークに追加
はてなブックマーク - VarnishでESIを使うときの注意するべき点
Share on Facebook
Share on LinkedIn
Bookmark this on Livedoor Clip
Livedoor Clip - VarnishでESIを使うときの注意するべき点
Share on FriendFeed