ドメインの移転とサーバの移転
リニューアルで新しいサーバに切り替える方法。
www.hogehoge.com というサイトがあるとする。このサイトのリニューアルを行うにあたって現状のサイトを提供しているサーバから、新しいサーバへ切り替えることになった。
通常でいくと、オープン時に、www.hogehoge.comドメインを新しいサーバに向ける。DNS浸透まではwww.hogehoge.comで旧サーバへのアクセスもあるが、TTLを短くするなどで浸透を早めて対処するぐらいで、旧サーバへのアクセスは無視するか、あるいは旧サーバ側のコンテンツはすべて削除してしまい、404で「サーバ移転中」のアナウンスを出すレベルでの対処すればいい。
ボクが今までやってきたプロジェクトはそのレベル。が、今はそんなこともほとんどないとは思うが、DNS浸透が遅く、かなりの期間旧サーバへもアクセスされるような状況がある場合、旧サーバへのアクセスを上記のような対処で取りこぼすというのは、もったいない。
そんな時、いろいろ方法はあるのだろうけど、1つの方法としては、旧サーバ側でリバースプロキシをかけるという方法がある。この方法をとれば、www.hogehoge.comで旧サーバにアクセスしても、リバースプロキシで新サーバのファイル・データをあたかも旧サーバから返してるかのように返せる。mod_proxyなんかを使う。
トリッキーな方法としては、 www1.hogehoge.comというようなDNSを先に、新サーバ側に向けておく。新サーバ側では、www1をwwwのバーチャルホストとして動かす。オープン後は、www.hogehoge.comで旧サーバを見に行った場合には、www1.hogehoge.comへのリダイレクト(テンポラリー)とする。DNS浸透がすすみ、www1へのアクセスがまばらになったら、www1をwwwへのリダイレクト(パーマネント)とする。こんなやりかた。絶対パスでPOSTを使ってるときは、リダイレクトできなかったり、wwwでSSLをとってると、www1でSSL領域にアクセスした場合にどうなるのか… などなど、この方法にもいろいろと問題はあったけど、なんとかうまくいきそうな気配だ。
リバースプロキシについていろいろ調べてて、squidを利用して、1つのSSLで複数サーバの認証を行う方法だとかも知った。うーん。やはり技術や基礎的なことってのはもっともっと知っとかなきゃならんなぁと痛感した。結局、知ってるか知らないかですべてが決まる。知ってれば判断できることも知らないのでなんともできない。