Laravel-S 项目之初体验
一、前言#
最近看到社区里很多人都在讨论 Laravel-S
,我也去 Github 上查看了一下该项目,其实 Laravel-S
是快速集成 Swoole
到 Laravel
或 Lumen
,然后赋予它们更好的性能、更多可能性的一个胶水项目。我今天正好空闲下来,心想还是测试一波,看看性能会不会有提升呢?
二、创建 Laravel 项目#
1、新建项目#
laravel new laravel-S
或者使用
composer create-project laravel/laravel laravel-S --prefer-dist "6.2.*"
进行新建项目
2、配置好 .env
文件#
配置如下:
APP_NAME=laravel-s
APP_ENV=local
APP_KEY=base64:aQ/ykVTPt/++KGQ27oRw6Y3SeACoCyzJOHaNlSumymY=
APP_DEBUG=true
APP_URL=http://laravel-s.test
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_s
DB_USERNAME=root
DB_PASSWORD=root
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
注意:这里主要配置好数据库连接和 APP_URL
,其他的配置项,新建项目时默认带有了
3、配置 Nginx 服务器#
新建一个 Nginx
配置文件,写入如下配置(这里根据你自己的项目配置,能访问到项目即可)
我的 Nginx
配置文件如下:
server {
listen 80;
client_max_body_size 512m;
root /Users/liangguifeng/www/laravel-S/public;
index index.php index.html index.htm;
server_name laravel-s.test;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
4、初次访问我们的项目,如下图,那么基本的配置就完成了#
三、安装 laravel-S 胶水项目到我们的 Laravel 项目上#
1、通过 Composer
安装#
composer require "hhxsv5/laravel-s:~3.5.0" -vvv
2、注册 Service Provider
(以下两步二选一)。#
-
Laravel
: 修改文件config/app.php
,Laravel 5.5+支持包自动发现,你应该跳过这步
'providers' => [ //... Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class, ],
-
Lumen
: 修改文件bootstrap/app.php
$app->register(Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class);
3、发布配置和二进制文件。#
php artisan laravels publish
4、运行#
php bin/laravels start
5、运行成功后如图:#
运行结果:
访问成功:
四、执行 ab 压测#
1、新开一个命令行窗口,测试 Nginx 服务器下 Laravel 的并发量:#
命令如下:
ab -n 2000 -c 100 http://laravel-s.test/
注意:上面那个命令一般是我们最常用的的,意思是对 http://laravel-s.test/ 的主页发送 2000 个请求 (-n 代表发多少请求) 100 个并发 (-c 代表并发的请求)
测试如图:
2、然后继续测试继承 laravel-S 的 laravel#
命令如下:
ab -n 2000 -c 100 http://127.0.0.1:5200/
注意:上面那个命令一般是我们最常用的的,意思是对 http://laravel-s.test/ 的主页发送 2000 个请求 (-n 代表发多少请求) 100 个并发 (-c 代表并发的请求)
测试如图:
五、结语#
1、首先我们来看一下这两个数据的对比吧,如下图:#
左边是 Nginx
的压测结果,右边是集成 Laravel-S
的 laravel 压测结果
2、总结#
从图中我们可以看到,集成了 laravel-S
的 Laravel
框架确实快了很多很多,但是最近看到社区中使用 laravel-S
的用户,碰到了很多问题,但是集成了 Swoole
后速度确实上升了很多,希望 laravel-S
的作者继续去完善,同时大家想要把自己的项目加上 laravel-S
也要慎重考虑,文章到这里就结束了,我也没什么好说的,毕竟我也是个菜鸟,如果文章中有做得不对的地方和写的不对的地方欢迎大家指出!
3、鸣谢#
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: