概要
- Herokuに載せたアプリをメンテナンスモードにした際、デフォルトではHerokuが用意しているメンテナンス画面が表示されます
- 見た目的にもセキュリティ的にも独自で作成した画面にしたほうがよいので、その方法を記載します。
Herokuメンテナンスモード
- Herokuに載せたアプリケーションをメンテナンスモードにするには、Settings画面から切り替えます。
- また、Heroku CLIを使用している場合は以下コマンドでも切り替えられます
$ heroku maintenance:on
$ heroku maintenance:off
- メンテナンスモード中に、対象アプリケーションにアクセスするとHeorkuが用意しているメンテナンス画面が表示されます。
メンテナンス画面の作成
- htmlかなんかで適当なメンテナンス画面を作成し、それをインターネット上からアクセス可能な場所に配置します
- 静的ページであれば、AWS S3やgithub pagesに置くとコストがほとんどかからずおすすめです
Heroku設定
- Herokuアプリケーションの環境変数
MAINTENANCE_PAGE_URL
を新規に作成し、メンテナンス画面のURLを指定します。 - Heroku CLIであれば以下コマンドで指定します。
$ heroku config:set MAINTENANCE_PAGE_URL="メンテナンス画面のURL" --app "アプリ名"
- ちなみにS3に配置したhtmlであれば以下のような指定になります
//<バケット名>.s3.amazonaws.com/maintenance.html
- 設定したら、反映されるまで1分程度待ちます。
- 以上で、自作のメンテナンス画面が表示されるようになります。
注意点
- メンテナンス画面に遷移しているのではなく、Herokuの用意したメンテナンス画面にiframeで表示されています。
- そのため、ブラウザに表示されるURLはHerokuのURLになります
- HerokuアプリケーションはHTTPSなので、自作のメンテナンス画面もHTTPS化する必要があります。(httpのページをhttpsのメージにiframeで表示することができないため)