laravel5.*轻松实现维护模式以及允许指定 IP 用户访问(添加用户白名单)
Song •
3611 次浏览 •
0个评论 •
2017年11月08日
aravel使用中,我们需要对网站进行维护,升级以及程序修复。在升级过程中,常常会抛出错误页面或者出现其他问题,这样对我们的用户体验一点都不友好,还好,在laravel中,给出了一个好的解决方案:
在app/start/global.php
中给出了提示代码:
App::down(function()
{
return Response::view('maintenance', array(), 503);
});
一、实现网站维护模式
在resourse/view/error
下新建503.blade.php
文件,这就是提示维护中的页面,可以根据自己的需求自定义。
# 开启维护模式
php artisan down
# 关闭维护模式
php artisan up
二、允许指定 IP 用户访问即添加用户白名单
1、首先,我们要判断现在是否开启了维护模式,在上面文章中我们有讲到在哪里定义维护模式,这里我们用如下代码检测维护模式
if(App::isDownForMaintenance())
{
die("现在是维护模式");
}
2、我们用Artisan
命令在app/Http/Middleware
目录下生成个ForMaintenance.php
文件来处理我们的业务逻辑,在handle()
下加入我们的业务逻辑,完整代码如下:
<?php
namespace App\Http\Middleware;
use App;
use Closure;
class ForMaintenanceMode
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (App::isDownForMaintenance() && !in_array($request->getClientIp(), ['127.0.0.1', '123.0.0.1']))
{
return response('维护中!', 503);
}
return $next($request);
}
}
这里我们$request->getClientIp()
代表获取当前IP,如果是服务器在线上,就是自己的IP了,如果实在本地测试,一般都是127.0.0.1了
3、打开app/Http/Kernel.php
把我们处理业务逻辑的中间价在$middleware
中替换掉
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];
替换成:
protected $middleware = [
Middleware\CheckForMaintenanceMode::class,
];
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
热门文章
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
-
oppo手机默认浏览器urlscheme 2025-02-13
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
更多相关好文