AWSロードバランサーの背後にあるサーバからメンテナンスページを返したい
2019/10/01 - moriya - ~1 Minute
AWS で運用しているサーバがあり、ロードバランサー(ELB)に複数台のインスタンスがぶらさがっている構成。(centos7)
メンテナンス中に工事中ページを出してほしいというリクエスト。
工事中も特定のIPアドレスからは動作確認をしたい。
/etc/http.d/maintenance.conf などを以下のように作る。(記憶を元に書いているので間違っているかも)
RewriteEngine on
RewriteCond !%{HTTP_USER_AGENT} ELB-HealthChecker
RewriteCond !%{HTTP:X-FORWARDED-FOR} ^適当¥.な¥.IP¥.アドレス$
RewriteRule ^.*$ メンテナンスページのURL [R,L]
その後、webサーバを再起動。(systemctl restart httpd)
メンテナンスページの URL は S3 に static hosting などしておけばよいかも?
[R,L] ではなく [R=何かのエラーコード,L] にしたほうがよいかも? R=503 とかがよいかとは思うのだが、IE でうまく表示できず、時間もなかったので、上記設定にした。