Swoole + Laravel 实现高性能框架

在运营的过程中,Laravel框架由于过于笨重导致磁盘IO时不时爆满,导致服务卡顿,更无法承载大量用户使用,此时可以借助Swoole引擎来优化,将整个Laravel永久驻留在内存中,避免重复加载。

首先安装Swoole:

1
pecl install swoole

如果使用宝塔面板,直接在软件管理中安装swoole4即可

安装后,使用php -m | grep swoole命令来检查是否安装成功

然后在Laravel项目中安装laravel-swoole

1
composer require swooletw/laravel-swoole

命令行的php版本最好>=7.2

然后复制配置:

1
php artisan vendor:publish --tag=laravel-swoole

接着修改配置文件config/swoole_http.php

instances中添加auth,在providers中,添加AuthServiceProvider

1
2
3
4
5
6
7
'instances' => [
'auth',
],
'providers' => [
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Auth\AuthServiceProvider::class,
],

配置完毕后,可透过php artisan swoole:http start命令启动

反代配置

在宝塔中可重新添加站点来配置,需设置为纯静态站点,在面板中配置反向代理后,再次点击编辑配置,添加一行:

1
proxy_set_header HTTPS "on";

这样被代理的站点就能透过HTTPS访问,而不会默认HTTP

最终,可透过supervisor来守护进程,因为Swoole已经有多线程,所以只需要开一个进程即可