VarnishはVCL読み込み時にしか名前解決しない

varnish-logo

VarnishはVCL読み込み時にしか名前解決しない

Varnish の名前解決の仕様

結論から。

オフィシャルフォーラムで Varnish の中の人が名前解決の仕様についてコメントしている

Varnish sticks to an IP address once it is resolved. You can force a new lookup by reloading the VCL.
https://www.varnish-cache.org/forum/topic/91

by design でこの仕様になっているので、IP が変わりうるサーバをオリジンサーバに指定している場合、運用でうまく回避しなければいけない。

ザクッと検索すると、先人は次のような方法で回避している。

  • [名前解決を外に丸投げ]Varnishとオリジンサーバの間にサーバをはさみ、そこで名前解決させる
  • [Varnishで頑張る]Varnish の設定ファイルを適宜リロードさせて、名前解決をやり直す

案1:名前解決を外に丸投げ

Varnish で名前解決するのは諦め、IP アドレスが変わらない 別システムに名前解決してもらう。

VARNISH -> ORIGIN SERVER

というような構成であれば

VARNISH -> PROXY SERVER -> ORIGIN SERVER

という風になる。

Varnish からすれば、IP アドレスの変わらない PROXY SERVER とだけ通信。
ORIGIN SERVER の IP アドレスの変更は PROXY SERVER が面倒を見てくれる。

例えば PROXY SERVER を nginx にする場合、proxy_pass に何も考えずにホスト名をベタ書きすると、設定ファイル読み込み時にしか名前解決されないので、変数を使って定期的にリフレッシュさせる必要がある。

# http://d.hatena.ne.jp/hirose31/20131112/1384251646
location /api {
  resolver 127.0.0.1 valid=2s;
  set $api_backend "api.oreno";
  proxy_pass http://$api_backend:9999;
}

参照

案2:Varnishで頑張る

VCL をリロードして、無理やり名前解決させる。

細かいことを何も考慮しなければ、短い間隔で Varnish をリロードさせれば OK。リロードを何度も繰り返していると、メモリ使用量がぶくぶくふえる現象に出くわしているので、個人的には積極的にはやりたくない。

$ dig +short hostname などで IP アドレスをチェックして、アドレスが変わった場合のみ Varnish をリロードさせることも可能。

ホスト名に複数の IP アドレスが紐付いているような場合に、IP アドレス一覧を保持しておいて、IP アドレス一覧が変わった場合に VCL のバックエンドサーバ一覧を書き換えて、Varnish をリロードさせることも可能。

参照

Tagged with: , , ,
Posted in middleware

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
  • RT @__apf__: How to write a research paper: a guide for software engineers & practitioners. docs.google.com/presentation/d… /cc @inwyrd 1 week ago
  • RT @HayatoChiba: 昔、自然と対話しながら数学に打ち込んだら何かを悟れるのではと思いたち、専門書1つだけ持ってパワースポットで名高い奈良の山奥に1週間籠ったことがある。しかし泊まった民宿にドカベンが全巻揃っていたため、水島新司と対話しただけで1週間過ぎた。 それ… 3 weeks ago
  • RT @googlecloud: Ever wonder what underwater fiber optic internet cables look like? Look no further than this deep dive w/ @NatAndLo: https… 3 weeks ago
  • @ijin UTC+01:00 な時間帯で生活しています、、、 6 months ago
  • RT @mattcutts: Google's world-class Site Reliability Engineering team wrote a new book: amazon.com/Site-Reliabili… It's about managing produc… 9 months ago
%d bloggers like this: