参考资料

  1. RoadRunner 是 Octane 支持的三个服务器之一,它的定位是“最稳定、进程隔离最好”的选择
  2. Fresns PHP函数 官方要求
  3. Fresns 管理面板的默认登录入口是 /fresns/admin
  4. Fresns 的队列与 Redis 配置,本质上就是让主程序知道“异步任务交给谁处理
  5. Fresns 的代理环境配置,核心是让系统在 CDN 或反向代理
  6. Supervisor 是 Fresns 在生产环境中运行队列的标准方案
  7. 配置 Fresns 的队列进程,核心是使用 Supervisor 守护
  8. Fresns 的软链接,核心是解决“本地存储的文件无法被公网访问”的问题

Fresns 的代理环境配置,核心是让系统在 CDN 或反向代理

Fresns 的代理环境配置,核心是让系统在 CDN 或反向代理(如 Cloudflare、Nginx 反代)之后,能正确识别访客的真实 IP 地址。如果不配置,系统会把代理服务器的 IP 误认为访客 IP,导致日志、限流等功能失效。

📂 配置项说明

Fresns 从 2.7.0 版本开始适配代理环境,新增了 TRUSTED_PROXIES 环境变量。

配置项说明
TRUSTED_PROXIES可信任的代理 IP 地址或网段,多个值用英文逗号 , 隔开

⚙️ 配置示例

在 .env 文件中添加:

# 信任单个代理 IP
TRUSTED_PROXIES=192.168.1.1

# 信任多个代理 IP
TRUSTED_PROXIES=192.168.1.1,10.0.0.1

# 信任整个网段(CIDR 格式)
TRUSTED_PROXIES=172.16.0.0/12

配置完成后,需要清除配置缓存使设置生效:

rm bootstrap/cache/config.php

🔍 如何确定该填什么

  • Nginx 反向代理:如果你在前面加了一层 Nginx 反代,填该 Nginx 服务器的 IP。

  • Cloudflare:Cloudflare 的 IP 段是公开的,但数量较多且可能变动,手动维护比较麻烦。

  • 宝塔面板反代:如果使用宝塔的反向代理功能,代理服务器通常就是本机,可以尝试填 127.0.0.1。

💡 注意事项

TRUSTED_PROXIES 的值不要随意设为 *(信任所有代理)。这会让 Fresns 直接采用请求头中声称的 IP 地址,攻击者可以伪造 X-Forwarded-For 头来伪装自己的 IP,导致安全风险。

如果只是本机 Nginx 反代,填 127.0.0.1 即可;如果前方是 Cloudflare 这类大型 CDN,建议使用专门的包(如 monicahq/laravel-cloudflare)来动态获取 IP 段,避免手动维护。

作者:王壹杰
时间:2026-10-01 16:44:33
来源:https://fresns.ciilii.com/