このサーバーは数年来さくらのVPSにて運営しているのだが、たまに仮想OS脆弱性対応とやらでメンテナンスが入る。
指定した時間までに仮想OSの停止をすれば、勝手にメンテナンスで止められることはない。
4年近く利用していて、たったの二回だから、AWSのインスタンス障害に比べれば全然頻度は低い。
ただし、ゲストOSの完全停止が必要とのことで、その間サーバーをどうするか?
お盆期間中でアクセスも少ないので、DNSを一時的に別サーバーに向けて503(メンテナンス)を出すことにした。
Webにあった情報を参考にさせていただき、時間の部分をカスタマイズ。
# カスタマイズしたメンテナンス画面のURL ErrorDocument 503 /503error.html RewriteEngine On # 2015年08月11日 22:40~メンテナンスに入ります RewriteCond %%{TIME} >201508112240 # メンテナンス画面と画像,js,cssをリダイレクトされるのを防ぐ RewriteCond %{REQUEST_FILENAME} !(/503error.html|.(gif|png|js|css))$ # 503レスポンスする RewriteRule ^.*$ - [R=503,L] # メンテナンス終了時間をクローラーに伝える(←ここが重要) Header set Retry-After "Wed, 11 Aug 2015 14:00:00 GMT"
DNSの切り替えが伝わるまでに20分ぐらいかかるし、その後も切り戻しでいくつかはつなげない時間もあったかもしれないが、無事再起動完了。