参考资料

  1. Fresns 终端平台编号
  2. Fresns 的定时任务基于 Laravel 的 Task Scheduler 机制
  3. Fresns 的终端中清理缓存,需要根据具体的缓存类型来执行
  4. Fresns 的队列,它的核心是按需配置,并非安装必选项
  5. Fresns 的 PHP 扩展要求分为 必选 和 按需安装 两类
  6. RoadRunner 是 Octane 支持的三个服务器之一,它的定位是“最稳定、进程隔离最好”的选择
  7. Fresns 伪静态设置
  8. Fresns 的队列与 Redis 配置,本质上就是让主程序知道“异步任务交给谁处理

OpenResty 本质上是一个集成了 Nginx 与 LuaJIT 的 Web 平台

OpenResty 本质上是一个集成了 Nginx 与 LuaJIT 的 Web 平台,对于 Fresns 而言,它完全可以替代标准的 Nginx 作为 Web 服务器或反向代理使用。

📂 与 Fresns 的兼容性

Fresns 官方环境要求中列出的 Web 服务器是 Nginx、Apache、Caddy、IIS,并未直接提及 OpenResty。但由于 OpenResty 的核心就是 Nginx,因此 Nginx 能跑的配置,OpenResty 基本都能跑。

在 1Panel 面板的 Fresns 部署教程中,OpenResty 被明确列为推荐的 Web 环境选项,说明它在实际部署中已有成熟应用。

⚙️ 核心配置(URL 重写)

无论使用 Nginx 还是 OpenResty,Fresns 的 URL 重写规则都是相同的。核心要求是:所有请求必须定向到 public/index.php,且网站运行目录必须指向 /public。

Nginx 标准的重写规则如下,OpenResty 可直接沿用:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

在 1Panel 等面板中,通常直接选择「伪静态」方案为 Laravel5 即可,该规则与上述逻辑一致。

💡 配置要点

  1. 目录权限:若在 1Panel 等容器化环境中使用 OpenResty,需要注意运行用户。Fresns 项目目录的所有者可能需要设置为 1000:1000(具体取决于 OpenResty 运行时的 UID),而非宝塔环境下的 www。

  2. 反向代理场景:如果你计划结合 Octane(如 Swoole/RoadRunner)使用 OpenResty,可以将 OpenResty 配置为反向代理,将请求转发给本机的 Octane 服务(例如 http://127.0.0.1:8000)。此时需要正确传递 Host、X-Forwarded-For 等头部信息。

  3. PHP 处理:OpenResty 自身不解析 PHP,它需要通过 fastcgi_pass 将 PHP 请求转发给 PHP-FPM 处理。这与标准 Nginx 的配置方式完全一致。

简单来说,你完全可以按照配置 Nginx 的思路去配置 OpenResty 来运行 Fresns,重点在于确保 URL 重写规则正确,并将 PHP 请求正确转发给 PHP-FPM。

作者:王壹杰
时间:2026-10-01 17:07:38
来源:https://fresns.ciilii.com/