hylm / laravel-swoole-study
基于laravel加速的swoole扩展功能,目前仅用于测试和学习,扩展包尚未完善
dev-master
2021-07-09 01:26 UTC
This package is not auto-updated.
Last update: 2025-06-20 20:21:57 UTC
README
介绍
laravel框架加速swoole扩展
要求
依赖 | 说明 |
---|---|
PHP | 推荐PHP7+ |
Swoole | >= 1.7.19 从2.0.12开始不再支持PHP5 推荐4.2.3+ |
Laravel/Lumen | 推荐5.6+ |
安装教程
composer require hylm/laravel-swoole-study
# 确保你的composer.lock文件是在版本控制中
2.注册Service Provider。
Laravel
: 修改文件config/app.php
,Laravel 5.5+支持包自动发现,你应该跳过这步
'providers' => [ //swoole扩展 \Hylm\LaravelSwoole\Swoole\SwooleServiceProvider::class ]
3.修改配置文件 vendor/hylm/laravel-swoole-study/Swoole/Config/swoole_server.php
使用说明
- 操作命令
php artisan swoole:http {start|stop|restart|reload|infos}
。
命令 | 说明 |
---|---|
start | 启动LaravelS,展示已启动的进程列表 "ps -ef|grep laravels" |
stop | 停止LaravelS,并触发自定义进程的onStop 方法 |
restart | 重启LaravelS:先平滑Stop ,然后再Start ;在Start 完成之前,服务是不可用的 |
reload | 平滑重启所有Task/Worker/Timer进程(这些进程内包含了你的业务代码),并触发自定义进程的onReload 方法,不会重启Master/Manger进程;修改config/laravels.php 后,你只有 调用restart 来完成重启 |
infos | 显示组件的版本信息 |
- 访问地址:IP+端口号,例:http://192.168.1.1:9501
与Nginx配合使用(推荐)
示例。
gzip on;
gzip_min_length 1024;
gzip_comp_level 2;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml application/x-httpd-php image/jpeg image/gif image/png font/ttf font/otf image/svg+xml;
gzip_vary on;
gzip_disable "msie6";
upstream swoole {
# 通过 IP:Port 连接
server 127.0.0.1:5200 weight=5 max_fails=3 fail_timeout=30s;
# 通过 UnixSocket Stream 连接,小诀窍:将socket文件放在/dev/shm目录下,可获得更好的性能
#server unix:/yourpath/laravel-s-test/storage/laravels.sock weight=5 max_fails=3 fail_timeout=30s;
#server 192.168.1.1:5200 weight=3 max_fails=3 fail_timeout=30s;
#server 192.168.1.2:5200 backup;
keepalive 16;
}
server {
listen 80;
# 别忘了绑Host
server_name laravels.com;
root /yourpath/laravel-s-test/public;
access_log /yourpath/log/nginx/$server_name.access.log main;
autoindex off;
index index.html index.htm;
# Nginx处理静态资源(建议开启gzip),LaravelS处理动态资源。
location / {
try_files $uri @laravels;
}
# 当请求PHP文件时直接响应404,防止暴露public/*.php
#location ~* \.php$ {
# return 404;
#}
location @laravels {
# proxy_connect_timeout 60s;
# proxy_send_timeout 60s;
# proxy_read_timeout 120s;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header Scheme $scheme;
proxy_set_header Server-Protocol $server_protocol;
proxy_set_header Server-Name $server_name;
proxy_set_header Server-Addr $server_addr;
proxy_set_header Server-Port $server_port;
# “swoole”是指upstream
proxy_pass http://swoole;
}
}
参与贡献
- Hylm 本仓库
- 新建 Hylm_master 分支
- 提交代码
- 新建 Pull Request
特技
- 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
- Gitee 官方博客 blog.gitee.com
- 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
- GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
- Gitee 官方提供的使用手册 https://gitee.com/help
- Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/