laravel 的维护模式允许在部署或升级期间优雅地关闭应用程序,以减少对用户的干扰。1. 启用维护模式使用 php artisan down 命令;2. 自定义页面可通过创建 resources/views/errors/503.blade.php 实现;3. 允许特定 ip 访问通过 --allow 参数指定,如 php artisan down --allow=192.168.1.1;4. 设置 --retry=60 可定义 retry-after 头部为 60 秒;5. 使用 --secret="my-secret-token" 可生成绕过维护模式的 url;6. 禁用维护模式使用 php artisan up。此外,可结合零停机部署、负载均衡和队列任务避免维护模式影响;开发者也可在异常处理类中添加自定义逻辑,根据用户角色或 ip 显示不同页面;测试时应在非生产环境验证维护模式行为,包括页面显示、ip 白名单、retry-after 头部及日志信息。

Laravel 的维护模式允许你优雅地关闭你的应用程序,而不会吓跑用户。当你要进行部署、升级或者紧急修复时,这非常有用。它会显示一个自定义的错误页面,告知用户稍后重试。
解决方案:
启用维护模式:
最简单的方法是通过 Artisan 命令:
php artisan down
这会将你的应用程序置于维护模式,并显示默认的 503 错误页面。
自定义维护模式页面:
默认页面可能不够友好。你可以在 resources/views/errors/503.blade.php 创建一个自定义视图。 Laravel 会自动使用它。 如果这个文件不存在,你也可以手动创建。
示例 503.blade.php:
<!DOCTYPE html>
<html>
<head>
<title>维护中</title>
</head>
<body>
<h1>网站正在维护中,请稍后重试。</h1>
<p>我们正在努力让网站尽快恢复正常。</p>
</body>
</html>允许特定 IP 访问:
有时,你可能希望在维护模式下允许特定 IP 地址(例如,你自己的 IP 地址)访问应用程序,以便进行测试或调试。
使用 php artisan down --allow=192.168.1.1 --allow=10.0.0.0/24 命令。 你可以多次使用 --allow 选项来允许多个 IP 地址或 IP 地址段。
设置 retry 选项:
retry 选项允许你设置 Retry-After HTTP 头部,告诉浏览器在多长时间后重试。 这对搜索引擎爬虫很有用。
php artisan down --retry=60
这将设置 Retry-After 头部为 60 秒。
使用 secret 选项:
secret 选项允许你生成一个 token,用户可以通过访问特定 URL 来绕过维护模式。
php artisan down --secret="my-secret-token"
然后,用户可以通过访问 your-app-url/my-secret-token 来绕过维护模式。 Laravel 会设置一个 cookie,以便他们可以在一段时间内继续访问应用程序。
禁用维护模式:
使用以下命令禁用维护模式:
php artisan up
这将使你的应用程序恢复正常运行。
一个常见的策略是使用零停机部署。这意味着你在不关闭现有应用程序的情况下部署新版本。 这通常涉及使用负载均衡器和多个服务器实例。 你可以先将新版本部署到一部分服务器,然后逐渐将流量切换到新版本,最后再关闭旧版本。 另一个方法是使用队列来处理后台任务,这样即使网站处于维护模式,这些任务仍然可以继续运行。
你可以在 App\Exceptions\Handler 类的 render 方法中添加自定义逻辑,以便在维护模式下执行特定的操作。 例如,你可以根据用户的角色或 IP 地址来显示不同的维护模式页面。
public function render($request, Throwable $exception)
{
if ($this->isDownForMaintenance()) {
// 根据用户角色显示不同的维护页面
if (auth()->check() && auth()->user()->isAdmin()) {
return response()->view('errors.503-admin');
}
return response()->view('errors.503');
}
return parent::render($request, $exception);
}在生产环境中启用维护模式之前,最好先在测试环境中测试它。 你可以使用本地开发环境或 staging 环境来模拟维护模式。 确保你的自定义维护模式页面显示正确,并且允许的 IP 地址可以正常访问应用程序。 你还可以使用浏览器开发者工具来检查 Retry-After 头部是否已正确设置。 另外,记得检查你的日志文件,看看是否有任何错误或警告。
以上就是如何在Laravel中配置维护模式的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号