2006年08月27日 UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)
_ [PC][Web]UPnPでサーバーメンテナンス中もレスポンスを返す方法(条件付)
まえがき
いわゆる「自宅サーバ」を構築・運営されている人はそう多くないと思います。p2pquake.ddo.jpも1台で細々と運営しています。
が、サーバのメンテナンスが必要となった場合、メンテナンス中はアクセスを受け付けられません。「複数台でロードバランサ構成組んでるぜ!」と言う人には問題ありませんが、そうでない人にはちょっと困った問題です。DDNSのオフライン転送機能はDNSキャッシュ等の影響で待たされるし、独自サービスは転送出来ない。特に「P2P地震情報」がベータ2だった頃は、1台のサーバでピアのコネクションを全て管理していたので、(再起動の数分間でも機能が機能なので)切実な問題でした。
…などと悩んでいたところ、「ルータのアドレス変換で別のマシンに飛ばす」という方法を思いつきました。が、設定を変更するとTCP/IPセッションが全て切れてしまう(らしい)謎のルータで、これは使えません。
そこでテレビショッピングのごとく登場するのがUPnP。ルータの再起動やTCP/IPセッション断もなく動的にアドレス変換が出来ちゃうスグレモノ。これを使ってサーバへのアクセスを別のマシンに振ってしまえば、サーバを再起動しても別のマシンからレスポンスが返せる… というわけです。
方法 - 用意するもの
方法 - 手順
- サブサーバに必要なソフトウェアやデータを突っ込み、稼動。
- UPnPCJを使い、サブサーバにアクセスを振る(ポート開放)。
- サーバをメンテナンス。
- UPnPCJで、アクセスを振ったのを削除(ポート閉鎖)。またはサーバにアクセスを振る。
- サブサーバの稼動終わり。
それだけ。
単純に「メンテナンス中」と返すもよし、全データをミラーしてメンテナンス中と思わせないもよし。あるいは、面倒なのでメンテナンス中はどうでもいいや、と開き直るもよし。