• 欢迎来到我的博客
  • [email protected]

laravel-swoole 原理|laravel 与 swoole 的整合之路

学习笔记 tianlan 1年前 (2020-04-10) 781次浏览 0个评论 扫描二维码
文章目录[隐藏]

PHP和Laravel的生命周期、Swoole模型

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

方案一:像使用 php-fpm 一样使用 swoole

每次请求都需要启动一次laravel,效率低下

方案二:先启动 laravel ,多个请求共用这个 laravel 实例(不可行)

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

方案三:在方案二的基础上,reset 一些必要的变量

这个方案太麻烦了…而且用起来必须非常小心!否则有些变量忘记 reset 就会污染其他请求。

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

最佳解决方案(laravel-swoole 原理)

1.创建一个laravel实例

2.针对每次请求,都克隆一个laravel实例,来处理请求

3.克隆laravel实例后,会进行一些初始化操作

4.laravel 实例之前用 sandbox 隔离(或者说每个laravel实例都放在一个独立的 sandbox 中)

5.有一些对象是共享的(比如视图、session等),他们放在 sandbox 外

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

laravel-swoole 原理|laravel 与 swoole 的整合之路

nginx 反向代理 swoole 配置

 

location / {  
        proxy_set_header Host $host;
        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:1215;
}  

//请求静态文件时,nginx直接处理。如果请求其他的,兜底location会反向代理到swoole

天蓝, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:laravel-swoole 原理|laravel 与 swoole 的整合之路
喜欢 (0)
[[email protected]]
分享 (0)

您必须 登录 才能发表评论!