メンテナンス中の設定
備忘録ですから、毎回迷う事を適当に書き残します。
昨日のサーバメンテナンスの時の、外部公開には、旧サーバを利用します。
コンテンツコピーとかだけなら、運用サーバでも出来るのですが、
何時もやってる丸ごとハードディスクコピーでは、ハードディスクを切り離すので、
サーバと止める必要があるからです。
おまけに、1Tのハードディスクを丸ごとコピーするには、3時間程度の時間が必要です。
そこで問題になるのが・・・・
1.ドメイン管理
2.メンテナンス中を表示するWebページ
3.メールの送受信
大体こんなもんでしょうか。
この中で、3番のメールの送受信に関しては、ドメインが管理出来ていれば、
メールサーバが停止しても、送信サーバのキューに残るだけで、再送を行ってくれます。
1番のドメインが消失してしまえば、破棄されますが・・・・
1.ドメイン管理(作業は、バックアップサーバで実施しています。)
namedの設定で、chrootを利用していない場合で尚且つ、rootで直接ネットログイン出来る場合。
アマアマな設定を想定・・・・普通ありえません。
普通に読み替えて下さい。
# rsync -avuz root@192.168.xxx.yyy:/etc/named.conf /etc/named.conf
root@192.168.xxx.yyy password:【password】
# rsync -avuz root@192.168.xxx.yyy:/var/named/ /var/named/
root@192.168.xxx.yyy password:【password】
# systemctl restart named.service
192.168.xxx.yyy は現用サーバ、
このサーバを停止させてバックアップサーバに運用を切り替える作業です。
これで、ネームサーバを最新の状態に更新して再起動が完了しました。
普通は、chrootとか使ってると思うので、それなりの同期方法を行いましょう。
次に、表に出る部分、httpdのコンテンツを転送します。
2.メンテナンス中を表示するWebページ
/etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
# その他必要なオプション・・・
AllowOverride All
# AllowOverride は、.htaccessで上書きできる事を許可してます。
Require all granted
</Directory>
/var/www/html/.htaccess に以下を記入
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=192.168.xxx.zzz
RewriteCond %{REMOTE_ADDR} !=192.168.xxx.www
# 192.168.xxx.zzz 及び、192.168.xxx.www のみ普通のトップページが出るはず・・
RewriteRule ^.*$ - [R=503,L]
</IfModule>
<IfModule mod_headers.c>
Header set Retry-After "SAT, 3 Apr. 2021 22:00:00 JST"
# いつ頃終わるかお知らせしましょう。
</IfModule>
/var/www/html/maintenance.html を作成する。
この辺は、お好みでどうぞ!
仕事関連のサイトなら、それなりに、趣味のページなら適当に。
ErrorDocument 503 で、レスポンスステータスコード503を返して、表示コンテンツは、
/maintenance.html となります。
HTTPのレスポンスステータスコードに関しては、ググれば一発!
最後に、サーバを切り替えるのは、Firewall(ルータの場合もあります)で行います。
メンテナンス対象のサーバから、バックアップサーバへ、最低限の転送ポートを変更します。
http(80)および、https(443)のTCP
それと、namedの利用ポート
domain(53)のUDP及び、TCP
通常は、UDPで処理してますが、たしかゾーン転送はTCPじゃなかったかな?
念のため、TCP,UDP共転送しましょう。
SSGシリーズなら、MIP設定を変更。
Frotigateシリーズなら、バーチャルIPをイジります。
ルータのRTXシリーズとかなら、
nat descriptor masquerade static 1 5 192.168.xxx.yyy udp domain
nat descriptor masquerade static 1 6 192.168.xxx.yyy tcp domain
nat descriptor masquerade static 1 7 192.168.xxx.yyy tcp www
nat descriptor masquerade static 1 8 192.168.xxx.yyy tcp https
このあたりを、
nat descriptor masquerade static 1 5 192.168.xxx.bbb udp domain
nat descriptor masquerade static 1 6 192.168.xxx.bbb tcp domain
nat descriptor masquerade static 1 7 192.168.xxx.bbb tcp www
nat descriptor masquerade static 1 8 192.168.xxx.bbb tcp https
とかに変更する感じでしょうか・・・・
RTXシリーズとかだと、上記設定を上書きして、saveせずに運用。
メンテナンスが終わったら、サーバ切替と同時にルータを再起動させれば元に戻りますね。
連続運用機器も、たまには再起動させてやるとスッキリ安定する場合があります。
Windowsサーバあたりは、特に定期的メンテナンスと再起動は必要でしょう。