Webサービスを一時的に停止してアップデートやメンテナンスを行う際、Laravelのメンテナンスモードは非常に便利です。しかし、開発者や特定のクライアントには停止中もアクセスを許可したい場面があります。この記事では、Laravelのメンテナンスモードを使いながら、特定のIPアドレスからのアクセスのみ許可する方法について詳しく解説します。
Laravelのメンテナンスモードの基本
Laravelでは以下のコマンドでメンテナンスモードに切り替えることができます。
php artisan down
このコマンドを実行すると、すべてのリクエストに対して503エラー(Service Unavailable)が返されます。カスタムビューを用意すれば、任意の「工事中ページ」を表示させることも可能です。
特定IPアドレスを許可する方法
Laravel 7以降では、–allowオプションを使うことで、特定のIPアドレスをホワイトリストとして登録できます。
基本構文
php artisan down --allow=123.456.789.000
このように実行することで、指定したIPアドレスからのアクセスはメンテナンスモード中でも通常通りアプリケーションを利用できます。
複数IPの許可
複数のIPアドレスを許可したい場合は、–allowを繰り返して指定します。
php artisan down --allow=123.456.789.000 --allow=111.222.333.444
この設定により、開発チームや関係者など、複数のメンバーに限定してアクセスを開放できます。
IPアドレスが変動する場合の対処法
一部のプロバイダやモバイル回線では、IPアドレスが頻繁に変動します。そのような環境下ではCIDR表記による許可が便利です。Laravelでは直接CIDRに対応していませんが、プロキシやNginx、CloudflareレベルでのIP制御を併用することで柔軟な運用が可能です。
メンテナンスモードの解除
メンテナンス作業が完了したら、以下のコマンドで通常モードに戻すことができます。
php artisan up
これにより、全ユーザーに対してサービスが再開されます。
注意点:メンテナンスモードのキャッシュと環境変数
php artisan downで設定された状態は、フレームワーク内にキャッシュとして保存されます。そのため、設定を変更するたびにphp artisan up → php artisan downを繰り返す必要があります。また、IPアドレスの取得は通常$_SERVER[‘REMOTE_ADDR’]に依存するため、リバースプロキシ環境下ではTrustProxiesミドルウェアの設定も忘れずに確認しましょう。
まとめ
Laravelのメンテナンスモードは、アップデートや障害対応の際に便利な機能ですが、運用を止めずに一部関係者だけアクセス可能にするには–allowオプションが非常に有効です。信頼できるIPアドレスだけを許可することで、安全かつ効率的な保守作業を実現できます。プロジェクトの安定運用のためにも、ぜひこの運用テクニックを活用してみてください。