You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS服务器上配置Laravel Reverb使其正常运行?

IIS服务器配置Laravel Reverb的解决方案

以下是针对IIS服务器部署Laravel Reverb的具体配置方案,解决WebSocket无法正常工作的问题:

1. 调整Reverb监听地址与前后端配置

本地环境的localhost配置在服务器部署时无法被外部访问,需修改为服务器可被访问的地址:

后端.env配置修改

REVERB_APP_ID={*****}
REVERB_APP_KEY={*****}
REVERB_APP_SECRET={*****}
REVERB_HOST="0.0.0.0" # 监听所有网络接口,或填写服务器公网IP/域名
REVERB_PORT=8080
REVERB_SCHEME=http # 若用HTTPS则改为https

前端.env配置修改

VITE_REVERB_APP_ID={*****}
VITE_REVERB_APP_KEY={*****}
VITE_REVERB_HOST="your-server-domain.com" # 服务器公网IP或域名,不能用localhost
VITE_REVERB_PORT=80 # 若通过IIS反向代理,使用IIS站点端口(80/443)
VITE_REVERB_SCHEME=http # 对应IIS站点的协议

2. 配置IIS反向代理(URL重写)

需先安装IIS的URL重写模块和应用程序请求路由(ARR)模块,然后添加WebSocket转发规则:

  1. 打开IIS管理器,进入目标站点,点击「URL重写」
  2. 添加空白规则,命名为Reverb WebSocket Proxy
  3. 匹配URL:选择「正则表达式」,模式填写^apps/.*(对应Reverb默认的请求路径前缀)
  4. 条件:添加两个条件
    • 条件输入:{HTTP_CONNECTION},模式:Upgrade
    • 条件输入:{HTTP_UPGRADE},模式:websocket
  5. 操作:选择「反向代理」,服务器名称填写localhost,端口填写8080,勾选「启用WebSocket代理」

3. 确认IIS站点WebSocket设置

  1. 进入站点的「WebSocket」功能,确保「允许WebSocket」处于启用状态
  2. 检查站点的应用程序池,将.NET CLR版本设置为无托管代码(Laravel为PHP项目,无需.NET托管)

4. 服务器防火墙与端口配置

  • 若直接让前端访问Reverb的8080端口,需在Windows防火墙中添加入站规则,允许TCP协议的8080端口
  • 推荐使用反向代理方式,通过IIS的80/443端口转发请求,避免开放额外端口

5. 将Reverb注册为Windows服务(生产环境必备)

避免手动启动Reverb,用NSSM工具将其注册为后台服务:

  1. 下载NSSM工具并解压到服务器
  2. 打开命令提示符,执行:
nssm install LaravelReverb
  1. 在弹出的配置窗口中:
    • 「Path」填写PHP可执行文件路径(如C:\PHP\php.exe)
    • 「Arguments」填写artisan reverb:start
    • 「Working Directory」填写Laravel项目根目录
  2. 设置服务启动类型为「自动」,启动服务即可

6. 调试排查

  • 运行php artisan reverb:start -v查看Reverb的实时日志,排查连接错误
  • 查看IIS站点日志(默认路径C:\inetpub\logs\LogFiles),检查WebSocket请求的错误码(如403、502)
  • 前端控制台查看WebSocket连接报错,根据提示调整配置

内容的提问来源于stack exchange,提问作者Alexby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 00:00:07