Laravel Octane 项目加速与静态资源优化指南
Laravel Octane 项目加速与静态资源优化指南
一、Octane 核心加速配置
- 扩展安装与环境配置
composer require laravel/octane # 安装核心扩展php artisan octane:install # 生成配置文件(选择 Swoole/RoadRunner 等服务器)
- 服务器参数调优
修改 .env 文件启用高性能模式:
OCTANE_SERVER=swoole # 推荐 Swoole 或 RoadRunner
OCTANE_WORKERS=16 # 根据 CPU 核心数设定(建议 2-4 倍逻辑核心数)
OCTANE_TASK_WORKERS=8 # 异步任务处理线程数
- 服务启动与热更新
php artisan octane:start --port=8000 --watch # 指定端口并启用开发环境热更新
二、静态资源处理方案
Nginx 代理分流
动态请求与静态资源分离配置:
server {location / {try_files $uri $uri/ @octane; # 优先匹配 public 目录静态文件}location @octane {proxy_pass http://127.0.0.1:8000; # 动态请求转发至 Octane 服务proxy_set_header Host $host;}
}
长期缓存策略
针对静态文件添加缓存头:
location ~* \.(js|css|png|jpg|svg)$ {expires 365d; # 设置 1 年缓存有效期add_header Cache-Control "public";
}
三、性能深度优化
代码级加速
类预加载机制:在 config/octane.php 中配置 preload 字段减少重复加载
中间件精简:移除 routes/web.php 中非必要中间件
数据库连接池
启用 Swoole 独立连接池:
php artisan octane:start --task-workers=8 # 专用数据库连接线程
异步任务处理
Octane::concurrent([fn() => Log::info(...)]); # 非阻塞执行耗时操作
四、验证与监控
静态资源验证
访问 http://domain.com/js/app.js 检查响应头是否包含 Cache-Control: public
压力测试对比
ab -c 100 -n 1000 http://domain.com/api/test # 观察 Requests/sec 提升(预期 3-5 倍)
运行状态监控
php artisan octane:status # 查看进程内存占用
tail -f storage/logs/swoole_http.log # 实时错误追踪
五、注意事项
⚠️ 路径兼容性:迁移原服务配置到新目录时需修正 cron 等任务路径
🔄 热更新限制:生产环境需手动执行 php artisan octane:reload 更新代码
💾 内存泄漏排查:通过 octane:status 监控长期运行后的内存波动