互联网从业者的资讯社区
互联网从业者的资讯社区
下载 App 在 App 中打开

使用 Laravel Octane 提升十倍以上 Fresns 运行速度

Laravel Octane 通过使用高能应用服务器(包括 FrankenPHP、Open Swoole、Swoole 和 RoadRunner)来提高应用程序的性能。Octane 一次启动应用程序,将其保存在内存中,然后以超音速向其发送请求。

使用 #Octane# 方案,可以让 Fresns 提升十倍以上的速度,以下为启用流程。

安装和启用需在终端中执行,先要 cd 进入 Fresns 程序根目录。

安装 Octane

composer require laravel/octane

安装服务

Octane 支持四种加速服务

我们以 #FrankenPHP# 为例子,安装 FrankenPHP 服务

php artisan octane:install --server=frankenphp

启用服务

php artisan octane:start

octane:start 命令支持以下选项:

  • --host: 服务器应绑定到的 IP 地址(默认值: 127.0.0.1)
  • --port: 服务器应可用的端口(默认值: 8000)
  • --admin-port: 管理服务器应可用的端口(默认值: 2019)
  • --workers: 应可用于处理请求的 worker 数(默认值: auto)
  • --max-requests: 在 worker 重启之前要处理的请求数(默认值: 500)
  • --caddyfile: FrankenPHP Caddyfile 文件的路径
  • --https: 开启 HTTPS、HTTP/2 和 HTTP/3,自动生成和延长证书
  • --http-redirect: 启用 HTTP 到 HTTPS 重定向(仅在使用 --https 时启用)
  • --watch: 修改应用程序时自动重新加载服务器
  • --poll: 在监视时使用文件系统轮询,以便通过网络监视文件
  • --log-level: 在指定日志级别或高于指定日志级别的日志消息

为了保证服务一直启用,需添加到进程守护中,配置方法和队列一样

使用服务

  • 当 Octane 启用,需要将站点请求代理给 Octane 服务。
  • 以 Nginx 举例,将 URL 重写(伪静态)规则修改为以下配置。
location /index.php {
  try_files /not_exists @octane;
}

location / {
  try_files $uri $uri/ @octane;
}

location @octane {
  set $suffix "";

  if ($uri = /index.php) {
    set $suffix ?$query_string;
  }

  proxy_http_version 1.1;
  proxy_set_header Host $http_host;
  proxy_set_header Scheme $scheme;
  proxy_set_header SERVER_PORT $server_port;
  proxy_set_header REMOTE_ADDR $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection $connection_upgrade;

  proxy_pass http://127.0.0.1:8000$suffix;
}

配置介绍

是否强制 HTTPS

在根目录 .env 配置文件中添加一行 OCTANE_HTTPS=true

配置最长执行时间

默认最长执行时间为 30 秒

  • 修改配置文件 config/octane.php
  • max_execution_time 您可以将此值设为 0,以表示 Octane 请求执行时间没有特定的时间限制。

配置文件监听

监听后,当有文件被修改后,自动重启服务。

# 启用指令
php artisan octane:start --watch
  • 需要先安装 Node 文件监听库 npm install --save-dev chokidar
    • 如果没有 npm 指令,是需要先安装 npm
    • 以 Debian/Ubuntu 举例安装 npm 的指令 sudo apt install -y nodejs
  • 另外需要修改配置文件 config/octane.php
    • 在配置文件里 watch 数组中添加 pluginsthemes 表示监听插件和主题文件变化。
    • 示例见配图。
octane.png
https://zhijieshequ.com/post/octane
回复 唐杰

未登录无法操作

评论
INFO Server running….
Local: http://127.0.0.1:8000
Press Ctrl+C to stop the server
WARN unable to determine directory for user configuration; falling back to current directory.
WARN $HOME environment variable is empty - please fix; some assets might be store...

全文

https://zhijieshequ.com/comment/tFREKUMZ
唐杰 作者 : 如果程序没有报错,能正常运行,可以忽略。
共 1 条回复

我去装一个试试,因为我有用不完的内存,哈哈哈 ···

https://zhijieshequ.com/comment/NmKRhtgL
Nahida : 这玩意吃CPU
共 1 条回复

fresns 用那个composer源好啊。宝塔默认的源没下载成功·

https://zhijieshequ.com/comment/pQKbgZC5
Nahida : 官方源
唐杰 作者 : 不要用宝塔的那个可视化操作,自己直接在终端里执行命令。 使用官方源,国内镜像不稳定。
蓝冰 : 好的,明白。
共 3 条回复

1panel上好像用不了,设置伪静态时出错了
服务内部错误: stderr: 2024/07/01 10:12:14 [emerg] 130#130: unknown "connection_upgrade" variable nginx: [emerg] unknown "connection_upgrade" variable nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test failed

https://zhijieshequ.com/comment/2s7eLemd
唐杰 作者 : 我只在宝塔里跑,没有在 1Panel 里试过。你自己研究研究吧。
共 1 条回复

移动端速度会有提升吧?

https://zhijieshequ.com/comment/rLkiuelc
唐杰 作者 : 当然了,API 速度也更快了,都秒开了。性能不比 Go 语言差了。
共 1 条回复

微信小程序登录登录不上 一直转圈 这个要修改哪里吗

https://zhijieshequ.com/comment/kfPROfo6
星禾 : 没用这个的时候是微信可以登的,这个挺快的就是微信小程序登陆不上一直转圈
唐杰 作者 : 提示截图
共 2 条回复

上滑加载更多

服务条款 隐私政策 Cookie 使用条款

© 2024 知结社区 | Powered by Fresns

弗雷森斯(苏州)科技有限公司

苏ICP备2021027795号-3

增值电信业务经营许可证:苏B2-20210954

广播电视节目制作经营许可证:(苏)字第02601号

不良信息举报: jubao@fresns.cn