不知不觉,小文博客上线2年有余,前些时候业余有些空闲,将博客进行升级,大大提升了访问速度,提高体验~
全栈https
站内https,七牛云https集成
服务器升级
从原来的1G1H升级为2G8H
redis缓存
复杂数据进行redis缓存,包括推荐,分类,banner等
集成swoole
在传统的 PHP 生命周期中, 为了脚本执行而浪费了大量的时间去创建和销毁资源。想象一下像 Laravel 这样的框架, 在每次请求中需要加载多少文件? 同时也浪费了大量的 I/O 操作。集成swoole大大提高了访问速度,提高并发。
$app = require_once __DIR__.'/bootstrap/app.php'; $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); // $http = new swoole_http_server("127.0.0.1", 9501); // 只侦听 localhost $http = new swoole_http_server("0.0.0.0", 9501); //侦听所有地址来的请求 $http->set(array( 'reactor_num' => 1, 'worker_num' => 4, //worker process num 'max_request' => 50, 'dispatch_mode'=>3, 'daemonize' => 1, )); $http->on('request', function ($request, $response) use($kernel,$http) { if ('/swoole_stop' == $request->server['request_uri']) { $http->shutdown(); $response->end('close'); return; } if ('/favicon.ico' == $request->server['request_uri']) { $response->end(''); return; } //大写转换兼容laravel $server = []; foreach ($request->server as $k=>$v) { $server[strtoupper($k)] = $v; } //将swoole请求构造为laravel请求 $laravel_request= new Symfony\Component\HttpFoundation\Request( isset($request->get)?$request->get:[], isset($request->post)? $request->post:[], [], isset($request->cookie)?$request->cookie:[], isset($request->files)? $request->files:[], $server); if (0 === strpos($laravel_request->headers->get('CONTENT_TYPE'), 'application/x-www-form-urlencoded') && in_array(strtoupper($laravel_request->server->get('REQUEST_METHOD', 'GET')), array('PUT', 'DELETE', 'PATCH')) ) { parse_str($laravel_request->getContent(), $data); $laravel_request->request = new Symfony\Component\HttpFoundation\ParameterBag($data); } $laravel_request = Illuminate\Http\Request::createFromBase( $laravel_request); $laravel_response = $kernel->handle( $laravel_request ); //利用ob去保存laravel输出的content ob_start(); $laravel_response->sendContent(); $kernel->terminate($laravel_request, $laravel_response); $result = ob_get_clean(); //设置headers foreach ($laravel_response->headers->allPreserveCase() as $name => $values) { foreach ($values as $value) { $response->header($name, $value); } } //设置cookies foreach ($laravel_response->headers->getCookies() as $cookie) { $response->cookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), $cookie->isSecure(), $cookie->isHttpOnly()); } $response->end($result); }); $http->start();
同时,nginx要进行转发
location / { proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:9501; proxy_http_version 1.1; proxy_set_header Connection "keep-alive"; }
TODO
接入ES全文搜索
GO重写API接口
评论系统重写
接入第三方登录....