タグ

varnishに関するkamipoのブックマーク (35)

  • Varnishでテストコードを書こう! | GREE Engineering

    はじめまして、サーバ基盤チームの田中祥平(@xcir)です。 最近入社しまして、チームではいわなちゃんと呼ばれています。よろしくお願いします。 入社してからGREEの配信システムをVarnish Cache(以下Varnish)に置き換える仕事をしていたのですが、少し前に問題なく山を超えました。 そこで今回利用したVarnishの特にテスト機能について紹介しようと思います。 なお、今回の説明に利用するVersionは3.0.3です。 Varnishとは VCLというドメイン固有言語をもち、キャッシュもできる高速リバースプロキシです。 if文が書けるので柔軟に記述しやすいという特徴があります。 たとえば/admin/以下に許可したIP以外からのアクセスは弾くと言ったことは以下のように記述できます。

    Varnishでテストコードを書こう! | GREE Engineering
  • Varnishのストレージの話 – cat /dev/random > /dev/null &

    Varnishは様々なオブジェクトのキャッシュを行いますが その際にオブジェクトの保存を何処に行うかを選択することができます。 現在のバージョンでは malloc file persistent といった3つのストレージが存在しており、それぞれに特徴があります。 今回は特にpersistentに焦点をあてて解説します。 malloc メモリ上にストレージを置いているVarnishで一番高速なストレージです。 メモリ上に置くため当然のことながらサーバの移設での一時停止や再起動、 workerのpanicでの自動再起動などでキャッシュが吹き飛んでしまいます。 file ファイル上にストレージを置く、若干遅いストレージです。 ファイルと名前はついているものの永続化を目的としておらず、 ストレージへの書き込み時にflushしません。 読み書きはページ・バッファキャッシュ、つまりOSに任せており V

  • Varnish3.0.3が公開されました – cat /dev/random > /dev/null &

    Varnish3.0.3が公開されました。 今回の変更は多くのバグフィックスとツール系の機能拡充とドキュメントの整備です。 公式リリースノート varnish-cache-3.0.3 バグフィックス ・ストリーミングと正規表現の評価においてクラッシュの要因となるバグを複数修正しました。 ・ESIとGZIPにおいて壊れたオブジェクトを返却するケースが存在する問題を修正しました。 ・ESIのremoveタグ内にHTMLのコメントがあるケースにおいて不適切な削除を行なっていたのを修正 ・ban lurkerのスリープする条件の変更(回収した際は設定値・回収しなかった場合は1秒) ・多くのクラッシュの要因になるバグの修正 ・その他いろいろ修正 ツール系の機能拡充 varnishstat ・json出力オプションの追加(-j) varnishtest ・resp.bodyでレスポンスボディの評価が可

  • 第4回チューニンガソン(Tuningathon)で優勝してきた - @ijin

    3回目の参戦となる#tuningathonで@tnmtさんと共に優勝してきました。 やった事は相方のブログに書かれているので、補足。 開演前 朝起きると、やたらとアラートが飛んでいるので調べると、うるう秒のせいでサーバ達が高負荷状態に。 @tnmtさんも同じ原因で障害対応中で待ち合わせ時間には間に合わず、参加が危うい感じ。 自分の方はなんとか片付けて、ぎりぎり開演前に到着。 お題発表 前々からやって欲しかったRuby on Rails! で、Refinery CMSというブログのチューニング。 内心喜びました。 前半戦 作業開始前にはまず何よりもバックアップ。 いつでも環境を戻せるようにRailsのフォルダをコピーしてMySQLのdumpを取っておく。 速攻でrbenv + ruby-buildを入れて、rubyの最新バージョン(1.9.3-p194)をインストール。 ビルドの間、まずは環

  • #tuningathon #4に参加しました

    2位でした。ありがとうございます。お騒がせしました。 やったことはこれだけ varnish導入 unicorn導入 varnish default.vclはこんな感じ。 ポイントは、vcl_fetchの先頭にあるbanですな。 backend default { .host = "127.0.0.1"; .port = "3001"; } sub vcl_recv { if (req.restarts == 0) { if (req.http.x-forwarded-for) { set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; } else { set req.http.X-Forwarded-For = client.ip; } } if (req.request != "GET" &

  • VarnishでPOST・COOKIE・GETを扱うためのVMODを作ってみた(vmod-parsereq) – cat /dev/random > /dev/null &

    この前のエントリでPOSTを扱うVMODを作ってみたというのを上げたのですが あの後、使ってくれた人とかからインタフェース変えるとイイヨーイイヨーと言われたので req.http.*に格納するのではなくvmod_curlのように良い感じに使いやすくしてみました。 それだけじゃつまらないということで、おまけでGETとCOOKIEに対応してみました。 今回の特徴は以下です。 ・application/x-www-form-urlencodedとmultipart/form-data両方に対応 ・GET・POST・COOKIEに対応 ・格納されているキーの一覧を取得することができます。 インラインCと併用することですべてのGET・POST・COOKIEのキーに対して特定の値 (攻撃っぽいコードなど)が含まれているかなどのチェックが容易です 使い方はこんな感じです。 たとえばPOSTでhogeとい

  • VarnishでPOSTデータを扱うためのVMODを作ってみた(vmod-parsepost) – cat /dev/random > /dev/null &

    Varnishは基的にPOSTデータを解釈してなにかしらの処理をすることができません。 そこまで不便はないとは思うのですが、たとえば特定のキーワードがPOSTに入ってたら Varnishではじきたいといったことは普通は出来ません。(インジェクションっぽいクエリとか) そのためVarnishでPOSTを手軽に扱うためのVMODを作ってみました。 以下のような特徴・機能があります。 ・application/x-www-form-urlencodedとmultipart/form-data両方に対応 ・パースした値をreq.http.*に格納する ・指定されたヘッダにパースしていない生データを格納可能 ・multipartのデータはurlencodeして格納 ・multipartの生データは(扱いづらいので)application/x-www-form-urlencodedと同じ形式に直して

  • Varnish の設定ファイルを使って Basic 認証を実装する。 - こせきの技術日記

    Varnish 体に Basic 認証の機能はない。VCL を使って、Basic 認証を実装することならできる。 原始的な実装。 Authorizationヘッダが一致しなかったら401エラーを出す。 backend apache { .host = "127.0.0.1"; .port = "80"; } # vcl_recv は、クライアントからリクエストを受け取った時に実行される。 sub vcl_recv { set req.backend = apache; # Authorization ヘッダが一致しなかったら401エラー。 if (req.http.Authorization != "Basic dXNlcjpwYXNz" && req.http.Authorization != "Basic dXNlcjI6cGFzczI=" ) { error 401; } retu

    Varnish の設定ファイルを使って Basic 認証を実装する。 - こせきの技術日記
  • Varnish の hit_for_pass ってなに? - こせきの技術日記

    結論 「キャッシュしない」ことをキャッシュするのが hit for pass キャッシュオブジェクト。 同じ URL に、同時にアクセスされたとき、 キャッシュが見つからない場合 …… 先頭のリクエストだけをバックエンドに送り、残りはそのレスポンスを待つ。 hit for pass キャッシュが見つかった場合 …… 他のリクエストを気にせず、全部バックエンドに送る。 という動作になる。 発端 Varnish を3.0にバージョンアップしたら vcl_fetch のreturn (pass); がエラーになった。どうやら、単純に return (hit_for_pass); に置き換えればいいらしい。 Upgrading from Varnish 2.1 to 3.0 — Varnish version trunk documentation 2.1から3.0にアップグレードする際のVCLフ

    Varnish の hit_for_pass ってなに? - こせきの技術日記
  • 夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &

    夏コミで同人誌でだしたVarnishCache入門ですがPDFで公開します。 幾つか公開したかった理由はあったのですが、実際コミケまで足を運んで買っていただいた方にちょっと申し訳ないかなと 電子出版での有料配布も考えていたのですが 64P程度で大げさかなというのと、もう一ヶ月経って3.0.1も出たしいいかなと思い公開します。 内容的には初心者向けとなっていますので、そこまで高度な内容については記述していません。 なお3.0.1が公開されたためページ数が変わらない範囲で、その内容についても一部加筆しています。(fallback directorとか) Varnishを使ってみようと考えている方の参考になればと考えています。 PDFのダウンロード ちなみに、時間と印刷費の関係で書ききれなかった事がたくさんあるのですが(転記されないパラメータやら、varnishtestとか・・・) そういうこと

    夏に出したVarnishCache入門をPDFで公開しました – cat /dev/random > /dev/null &
  • Varnish Cache3.0.1がリリースされました – cat /dev/random > /dev/null &

    Varnish Cache3.0.1が公開されました。 主にバグ修正かとおもいきや嬉しい機能追加もあります。 僕は英語が苦手で書いてる時点で変更の検証が終わってないので 勘違いしている訳があったら教えて下さい・・・ Varnish Cache releases Objects with grace and keep set were mistakenly seen as candidates for the shortlived storage, but would not be cleaned up quickly, something that manifested as if there was a memory leak. This is now fixed. Transientストレージにおいてメモリリークのような現象が起きるバグを修正しました。 この件ですね Varnish3で

  • 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ストレージ

  • 『varnishについて』

    みなさん、こんにちは。 2010年9月入社のUDAGAWAです。 今回は、reverse proxyのvarnishに関して記事を 書かせていただきます。 ■varnishとは 高性能HTTPアクセラレータです。 同じような機能を持ったsquidより10~20倍高速だということが 売りのひとつだそうです。 ■背景 Amebaの画像配信システムは、reverse proxyとして squid2.7 STABLEのCOSSを使ったシステムを利用しています。 squid2.7自体が古いバージョンなので、できればバージョンアップしたいところ なのですが、現状 squid3系からはcossが使用できないこともあり varnishを検証しておこうと考えたのがきっかけです。 ■テスト環境 CentOS5.5 Kernel 2.6.18-194.3.1.el5 Varnish 2.1.3 ■インストール

    『varnishについて』
  • Varnish勉強会 Tokyo.vclを行いました - はまさき

    Varnish勉強会 Tokyo.vcl : ATND 予想に反して満員御礼となりまして、登壇、参加して下さった方をはじめ補欠に入ってまで参加を希望して下さっていたみなさんありがとうございました。AWSだったりFusionIOだったりインフラに関わっていると会って話したくなるような方が多くいらっしゃって 以下、簡単ではありますがサマリーをまとめておきたいと思います。 配信 即席の環境ではありましたが配信も行っておりました。音声等あまり気にすることが出来ておりませんが、録画を残しております。 前半 オープニング〜@PENGUINANA_ さんの途中まで http://www.ustream.tv/recorded/15453305 後半 @PENGUINANA_ さんの途中 〜終了 http://www.ustream.tv/recorded/15453834 発表 皆さんの発表の情報をまと

    Varnish勉強会 Tokyo.vclを行いました - はまさき
  • 私がクックパッドの画像配信野郎です - 昼メシ物語

    一年ほど前にヤフーを退職した私ですが、その後なにをやっているかというと、クックパッドに入社して画像配信をしています。私が入社する前から動いていた画像配信の仕組みは設計が古くてなにかと困っていたので、より良いシステムを開発してリプレースというのをやっています。前職ではなかなかこういう基盤システムを一人でイチから作って運用までするという体験はできなかったので、でかい仕事をできるチャンスに恵まれて大変充実した毎日です。 入社当初はサービス開発の担当だったんですが、開発に必要な基盤システムを作り始めたらどんどんエンジニアリングのレイヤーが下がってきて、気づけばインフラチームに所属していました。 まあそんな話はさておき、この画像配信関連の成果をいくつかの勉強会で発表したので、その資料を紹介します。 サイバーエージェントxクックパッド合同勉強会(amepad) 弊社オフィスで開催された、サイバーエージ

    私がクックパッドの画像配信野郎です - 昼メシ物語
  • 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 best practices « Kristian Lyngstol's Blog

    A while ago I wrote about common Varnish issues, and I think it’s time for an updated version. This time, I’ve decided to include a few somewhat uncommon issues that, if set, can be difficult to spot or track down. A sort of pitfall-avoidance, if you will. I’ll add a little summary with parameters and such at the end. 1. Run Varnish on a 64 bit operating system Varnish works on 32-bit, but was des

  • ウノウラボ by Zynga Japan: Varnish上でESIの機能を利用する

    Keita です。 サンフランシスコで開かれたSymfony Liveで、Fabien Potencier氏によるHTTP Cacheという発表がありその中でESI(Edge Side Includes)の紹介がありました。 下の画像はちょっとみずらいですが、たとえばこのラボブログのレイアウトだと大枠の部分は常によりユーザに使いフロントの所(つまりCDNやキャッシュサーバ)側でキャッシュされていてAの部分とBの部分それぞれのコンテンツを別々にインクルードする形でキャッシュ制御することができます。 Symfony2のサイトsymfony-reloaded.orgでも、マニュアルがありますので、詳細はそちらを参考にしていただくとして、その中に、Varnishでもその機能が利用できることが紹介されていますので試してみたいと思います。 Varnishのインストールについては省略してとりあえず設定部

  • Varnish HTTP Cache — Varnish HTTP Cache

    Varnish HTTP Cache¶ I’m new here, please explain this Varnish thing What is happening¶ 2024-03-18 - Varnish 7.5.0 is released¶ Our bi-annual “fresh” release is here: Varnish Cache 7.5.0 The 7.3 series is no longer supported in any capacity. 2024-03-18 - Varnish HTTP/2 Broke Window Attack¶ All Varnish Cache releases with HTTP/2 support suffer a vulnerability in the HTTP/2 protocol. Please see VSV00

  • Varnish - メモ帳

    このページの最終更新は 2010年5月23日 (日) 06:59 に行われました。 このページは52 回アクセスされました。 プライバシー・ポリシー メモ帳について 免責事項