タグ

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

  • CDNとの付き合い方 – cat /dev/random > /dev/null &

    最近何かと話題なCDNですが、そもそもCDNってなんだろう・・・どんなことに使えるんだろう?的なことを書いてみようと思います。 一応先に言っておくと、私はCDN業者に所属したことないのであくまでも利用者として見た時の話を書きます。 また、私の考えであり、様々なワークロードがあるなかでこれがすべてではありませんので、こんな考えもあるんだなぁぐらいに思ってもらえると助かります。 そもそもCDNってなんだろうか そもそもCDNはContent Delivery Networkの略であってCache Delivery Networkの略ではありません。 要はコンテンツをクライアントに対して高速・効率的に配信するためのネットワークです。 良くCDNといえばその成り立ちからキャッシュというイメージはありますが、重要な要素の一つではあるもののCDNの全てではありません。 さらに言えばAkamaiのInt

  • ライブドアの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 &
  • Varnish3で多くのオブジェクトを持つサイトを運営するときに注意するべきたった一つのこと(Transient storage) « cat /dev/random > /dev/null &

    一回こんなタイトルで書いてみたかったいわなちゃんです。 別にこれだけ注意しとけ!というわけではないのですが、とりわけドハマリしそうでまず注意しておきたいポイントに付いて解説します。 Varnish3の新パラメータに shortlived というモノがあります。 これは指定TTLより短い秒数しかキャッシュしない場合テンポラリストレージ(Transient storage)に保存するというものです。 これはTTLが短い場合このストレージに保存することでパフォーマンスをあげようというものです(多分) パフォーマンスをあげようというものなのでこいつはメモリストレージで確保されます storage.list 200 Storage devices: storage.Transient =★★ malloc ★★ storage.s0 = malloc 問題 以下の設定の時Transientストレージ

  • 画像が404の時にデフォルトの画像を出す方法(restart) – cat /dev/random > /dev/null &

    Varnishはバックエンドが複数ある場合、そのうちひとつが死んでも残りのバックエンドを使うfailover機能がありますが バックエンドに画像が何もなかったときはどうなるでしょうか?通常の場合はそのまま404を返します。 しかし、画像が投稿されてから非同期でサムネを作成したり、何らかの画像処理を行ったりで一時的にデフォルトの画像を出したいことがあります。 いわばファイル版のfailoverみたいなもんですね。方法がありますので書いてみます。 通常varnishがファイルに対して存在するかしないかを判定できるのはvcl_fetchですが その段階からこのファイルをもう一回リクエストして!みたいなことはできません。 そこで利用するのがrestartです。 これを使うとvcl_pass,miss,hit,fetch,deliver,errorから再度vcl_recvへ処理を戻すことができます。

  • 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・圧縮されてないコンテンツを持つ場合 両方を

  • qpstudy#03でVarnishのVCLを書くときのTipsについてLTしてきました – cat /dev/random > /dev/null &

    またまたVarnishのLTをqpstudy#03でやってきました 今回はVCLを記述する際に分かりづらいサブルーチンのところとデバッグの仕方を軽く話しました 正直5分という時間で詰め込みすぎた感があって今後の課題かなーと思いつつ Varnishを使う際の一助になれば幸いだと思っています 発表資料 UST(僕が話してるのは1:35:00あたりからです) UST中で言及しているinitrcの改造は Varnishのinitスクリプト改造(graceful対応) また二次会かビアバッシュで話したパージについては マルチドメイン環境でHTTP経由でPurgeを行うVCL設定とスクリプト 参加された方々お疲れ様でした楽しかったです! また、会場を貸していただきサポートしていただいたニフティの方々ありがとうございました! qpstudy公式 追記: ビアバッシュで話したApacheTrafficSe

  • Varnishの使い方(Using Varnish)を和訳しました – cat /dev/random > /dev/null &

    かなり前から途中まではやっては飽きたりを繰り返していた Varnish公式のWelcome to Varnish’s documentation! の和訳ですが チュートリアルに相当するUsing Varnishのところの和訳が終わってキリがいいのと そういやブログで和訳してるの言ってなかった気がするので報告します。 僕はあまり英語が得意ではないのでエキサイト先生やら辞書引いたりして 涙目で訳していますので間違いがあるかもしれません・・・ もしそういう箇所を見つけたらぜひ教えていただけるとありがたいです。 また新しいほうがいいだろうとtrunkの方を訳していたのですが 将来の記述変更を元にしたところもあるので少し注意が必要です。 (気づいた範囲で注釈はいれています) ★この資料はV2系です★ Varnishドキュメント(和訳) バックエンドサーバの指定(Backend servers) V

  • varnishでのif-modified-sinceの無視のやりかた – cat /dev/random > /dev/null &

    HTTPでの要求でIMS(if-modified-since)というものがあります ようはこんな感じのやりとりです ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「最新だからそれ使ってもいいよ」 (304 Not Modified) 普通であればまったく問題ないやり取りです ただトラフィックが非常に大きいサーバの場合深刻な問題になります さっきのやり取りをもうちょい具体的にかくと ブラウザ「今この日付でオブジェクトもってるんだけどこれって最新?使ってもいい?」 (If-Modified-Since: Sun,14 Feb 2010 03:01:19 GMT) サーバ「ちょっとまってね(HDDのファイルの更新日時を調べる・・・)最新だからそれ使ってもい

  • マルチドメイン環境で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のインストール方法(RPM化) Varnish2.1.2でのインストール方法を軽くメモってみました そのうち清書します ソースビルドでもいいんですがRPM化のほうが後々楽なので・・・ 注意するべきところは依存関係で /usr/bin/mkpasswd が要求されるところです これはexpectをyumなどでインストールすれば問題ないです あとは小技というほどでもないのですが 解凍したあとのredhatフォルダにinitrcがあるので そこをカスタマイズ(この前の記事に書いたreload対応など)にしておくと後々楽です Varnishインストール手順 うーんwikiにも書くとブログでまとめればいいのか迷うなー Varnishのランタイムパラメータをまとめてみた(2.0.x-2.1.x間の比較) Varnishのランタイムパラメータのデフォルト値を調べてまとめてみ

  • 1