リバプロを利用してドメインやサイトを移管する

カテゴリ: コンピュータ / 公開日: 2011年4月05日(火曜)02:57 / 投稿者: Tom Goodsun

リバプロというのを使うと何かと便利なことがあります。最近仕事でやったんですけど、概念はなんとなく理解していたんですが、やってみたらさらに理解が増しました。

ドメインやDNS、サイト移管のとき、用意できると便利ですよ。

ってことで、何が便利かをまとめ。

その前にプロキシを勉強しなければなりません。あまり理解は深くなかったんですが、プロキシ(proxy)の意味する通り、「代理」をしてくれます。何を代理するかというと、インターネット接続です。

ちょっと前までは今みたいにブロードバンドではなかったため、プロキシサーバーを通すことで、サイトのキャッシュをプロキシサーバーにためて、サイトのレスポンスを高速化するとかいうのをやってたらしいです。これは内部ネットワークからインターネットに出るときに代理をしてくれるサーバーです。

リバースプロキシは、その逆っぽいです。「リバース」の意味を理解するのに少し時間がかかりましたが、つまりリバースプロキシが受けっとた要求を例えば内部ネットワークに存在しているウェブサーバーに転送して、それに対するウェブサーバーの応答をまたリバースプロキシが自身の応答かのように返す、というものです。ワカリマスか? 前者は内部から外部ネットワークへプロキシが処理し、後者はその逆で外部から内部ネットワークへプロキシが処理するということで、「リバースプロキシ」っていうらしいです。現場ではリバプロって言ったりします。

プロキシサーバーとリバースプロキシサーバー

私は基本サーバーはLinuxで立てたい人なのですが、LinuxでリバプロサーバーといえばSquidApacheにコンパチされているやつとかあるのですが、私がよく使うのがPoundです。

 

リバプロ性質上、どれでも一緒だと思うのですけど(Poundしか使ったことがないもので、、、)、特定のサブディレクトリへのアクセスを全然別のウェブサーバーに転送することもできるのです。どんな時に使うんだ?って機能ですが、実際私はなんどもこの手法を使うハメになりました。色々と解決できない面倒くさいものがあるんですよ。

 

ところで、DNSやドメインの移管、サイト移管の時にどうしてリバプロが役に立つか。

www.example.comというドメインがウェブサーバーXというマシンに割り当てられていたとしましょう。これをドメインは同じで、新しいウェブサーバーAに変更したいとします。ということで、DNSを切り替えました。

 

ここで多くの人が失敗するのだといいます。

 

その理由はDNSのキャッシュです。DNSは受け付けたドメインをどのサーバーに転送するかの情報を持っており、世界中のいろんなDNSがその情報を取得します。つまり、「www.example.comはウェブサーバーXへ転送する」と知っているDNSは思っているよりも多いと思ってください。これはオリジナルのDNSの設定によるのですが、キャッシュ時間は決めることができ、その時間を経過しないと、少なくてもDNS情報は書き換わりません。

ここでリバプロサーバーAを立てて、しばらくの間転送先をウェブサーバーXにしておきます。ここでDNSを書き換え、www.example.comをリバプロサーバーAに割り当てるようにします。この状態だとDNSのキャッシュが書き換わるまでの間、www.example.comのアクセスはウェブサーバーXとリバプロサーバーAに転送されることになります。ここがミソなんですが、この冗長になっている設定がDNSのキャッシュが完全に書き換わるまでの間必要なのです。

あとは完全にリバプロサーバーだけに転送されるようになったら、リバプロで好きにウェブサーバーを変更できるようになります。

DNSの転送情報をリバプロにしておくことで、その先のウェブサーバーを一気に変更することができる。これが重要です。

DNSは一気に切り替えられないので、リバプロで一気に切り替えるようにする。

この方法であれば、ウェブサーバーAへの移行が格段にやりやすくなります。一気にDNSを切り替えてしまうと、キャッシュの関係で、ウェブサーバーXへのアクセスがなくなるまで時間がかかってしまいますからね。

あとこの方法はSSLにも有効です。Poundを使う場合はSSL証明書はリバプロで設定することになります。

この方法を知ってからは、Poundさまさま、リバプロさまさま。かなりいい感じです!