タグ

ブックマーク / blog.xcir.net (9)

  • varnishlogを見やすくするツールを作ってみた – cat /dev/random > /dev/null &

    みなさんVarnish使ってますか?僕はよく使ってます。 VCLの動作を調査するときなどによくvarnishlogを使うと思うのですが これが若干わかりづらいと思います。 例えば下はESIを一つ含んだvarnishlogの出力です 13 BackendOpen b default 192.168.1.199 36011 192.168.1.199 81 ★ここでバックエンド開いてる 13 TxRequest b GET 13 TxURL b /test2.html 13 TxProtocol b HTTP/1.1 13 TxHeader b User-Agent: Wget/1.12 (linux-gnu) 13 TxHeader b Accept: */* 13 TxHeader b Host: 192.168.1.199:6081 13 TxHeader b X-Varnish: 17

  • マルチドメイン環境でHTTP経由でPurgeを行うVCL設定とスクリプト – cat /dev/random > /dev/null &

    僕のサイトみたいに複数のドメイン(blog.xcir.net/xcir.net/wiki.xcir.net)管理しているけどVarnishサーバは一つの場合 公式サイトの設定例 acl purge { "localhost"; "192.0.2.14"; } sub vcl_recv { if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } purge("req.url ~ " req.url); } } だと違うドメインでも同じURLであれば消してしまいます。 ドメインを指定して安全にキャッシュをパージするにはどうすればいいでしょうか? acl purge { //パージを許可するホスト一覧 "localhost"; "192.168.1.0"/24; } sub vcl_r

  • Varnishを使う際に覚えておきたいデフォルトの罠 – cat /dev/random > /dev/null &

    最近とある人が嵌っていて聞かれたので Varnishを使う上で覚えておきたいデフォルト設定の罠を説明したいと思います。 デフォルトのLISTENポートは6081、VCLでなく起動パラメータで設定する そのかたはbackendの設定をLISTENポートと勘違いしていました。 Varnishの設定は主に2つにわかれています 起動パラメータ VCL設定(default.vcl) 起動パラメータはキャッシュを保存するストレージのサイズを指定したり、保持するスレッド数や、ワークスペースのサイズ、LISTENポートを指定したりなどと 主に変更する場合はVarnish自体の再起動が必要などと即時に反映できないものが多いです。 (デフォルトのTTLなどもあり、必ずしも全てではない) そしてVCL設定はリクエストに対してVarnishがどのように振る舞うかを定義しています。 redhat系の場合起動パラメー

    Varnishを使う際に覚えておきたいデフォルトの罠 – cat /dev/random > /dev/null &
  • ライブドアのsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &

    small lightシリーズ [1] ライブドアのsmalllightを使って動的に画像をリサイズしてみる [2] いろいろsmalllightを使って動的に画像をリサイズしてみる [3] smalllightでのエンジンの選択の仕方 [4] smalllightでのエンジンの選択の仕方 (ヒントオプション追加) 最近、動的に画像をリサイズするのが流行っているようです。 ゆめみラボのmod_ktaiクックパッドのmod_tofu、livedoorラボEDGEのsmall_lightなどいろいろありますが 今回small_lightを使ってみたので記事を書いてみます。 ついでに速いと噂のlibjpeg-turboも入れてみます。 smalllightとは 公式を見るのが一番早いとは思うので一度見てみてください。(→smalllight) 僕がsmalllightで特にいいなぁと思ったのが

    ライブドアのsmalllightを使って動的に画像をリサイズしてみる – cat /dev/random > /dev/null &
  • Tokyo.vclでVarnishCache3の新機能とVUPの仕方を話してきました – cat /dev/random > /dev/null &

    hmskさん主催の第一回のTokyo.vclでVarnishの話をしてきました。 5分~15分の長さでと言われたのでのんびりいっぱい喋れる! ・・・と思ったら詰め込みすぎて結構早口で聞き取りにくかったかもしれません。 申し訳ないです。 内容はVarnishCache3.0の新機能と2.1/2.0系からVUPするときの変更点についてです。 UST(5分あたりから喋ってます) あといくつか資料で補足したい点がありましたので・・・ 別にESI使わなくてもgzip対応の恩恵は受けられるよ! おもいっきりESIでgzipサポートとは書いていますが別にESIに限ったことではないのでESIを使わなくてもgzipは使えます。 スライド中には一行でしか書いてないのですが、 今まではVarnishではgzipの処理ができなかったので1つのオブジェクトに対してgzip・圧縮されてないコンテンツを持つ場合 両方を

  • VarnishのESIで擬似的にTTLを指定する方法 – cat /dev/random > /dev/null &

    以下の記事でもチラッと書いたのですが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" /> こんな感じの記述でできるようになります default.vcl ##

  • Varnish2.1.2でESIが使い易くなっていた件について(Varnish2.0.6と比較して) – cat /dev/random > /dev/null &

    以前書いた記事(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系では改善されたようです ということで比較してみます VCLの設定は両バージョンともこのような感じです

  • VarnishでESIを使うときの注意するべき点 – cat /dev/random > /dev/null &

    あんまり話題に上らないで個人的に悔しいVarnishのESI(Edge Side Include)ですが 非常に癖がありますのではまりやすいポイントをとりあえず自分用のメモ程度に 2010/06/23追記:Ver2.1.2では多少注意事項が変わっていますのでこちらも参照ください そもそもESIってなに? 例えばTwitterのホーム画面で考えてみましょう ページは様々な要素で構成されていますが大きく分けて二つに分かれます 表示される度に更新しなくてはいけないもの(広告・タイムライン) 表示される度に更新しなくてもいいもの(フォロワーなどの数) 別にフォロワー数を表示するためにPHPを動かして、DBかmemcacheにアクセスして整形して・・・ といった処理をしてもいいのですが PVが多いWEBサイトの場合、毎回呼ばれる処理はできるだけしたくありません PHP→memcacheとしても負荷が

    VarnishでESIを使うときの注意するべき点 – cat /dev/random > /dev/null &
  • Webサーバ勉強会#5でVarnishではじめるESIって発表してきました – cat /dev/random > /dev/null &

    oranieさんが主催しているWebサーバ勉強会という 全員何かしら発表するという勉強会でESIについて発表してきました。 ESIについては結構前にqpstudyでもLTしているのですが Varnishのバージョンも上がり、いろいろ使いやすくなったので、ここでもう一回とおもいこのテーマで発表しました。 Varnishの利点はやはりその柔軟な設定(VCL)にあると思うので その利点を生かして、単純に静的ファイルをキャッシュさせるだけではなく ESIのように複雑なキャッシュをさせるのもいいんじゃないかなと思っています。 また他の方の発表を聞いてfluentdはやっぱり使いたい!と思った所存です。 JSONにどうしてもなるのかなぁと思っていたのですがrawで収集できるようにしたよ!という発表もあり既存とも組み合わせしやすくこれはいいなと考えています。 Apacheについても2.4.1が出た際に僕

  • 1