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

生产环境使用Laravel Reverb:需在VPS运行php artisan reverb:start吗?

Laravel Reverb生产环境运行说明

是的,生产环境中必须运行php artisan reverb:start命令,Laravel Reverb才能正常工作。

Reverb本质是一个独立的WebSocket服务器,需要持续运行的进程来处理实时连接请求。本地开发环境中,Laravel可能会自动启动Reverb进程,但生产环境没有这个自动机制,必须手动启动或通过进程管理器守护该进程。

从你的Nginx配置来看,已经将/app路径代理到了Reverb默认的8080端口,这部分配置是正确的,但前提是Reverb进程已经在8080端口正常运行,否则代理请求会失败,导致Reverb无法提供服务。

生产环境最佳实践

直接在终端运行php artisan reverb:start不可取,因为终端关闭后进程会终止。建议使用进程管理器来守护Reverb进程,确保它持续运行且崩溃后自动重启:

示例:使用Supervisor配置

创建Supervisor配置文件(如/etc/supervisor/conf.d/reverb.conf):

[program:laravel-reverb]
command=php /path/to/your/project/artisan reverb:start
directory=/path/to/your/project
user=www-data
autostart=true
autorestart=true
stdout_logfile=/var/log/reverb.log
stderr_logfile=/var/log/reverb-error.log

配置完成后,执行以下命令生效:

supervisorctl reread
supervisorctl update
supervisorctl start laravel-reverb

示例:使用Systemd服务

创建Systemd服务文件(如/etc/systemd/system/reverb.service):

[Unit]
Description=Laravel Reverb Server
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=php /path/to/your/project/artisan reverb:start
Restart=always

[Install]
WantedBy=multi-user.target

配置完成后,执行以下命令生效:

systemctl daemon-reload
systemctl start reverb
systemctl enable reverb

验证服务状态

启动Reverb进程后,可以通过以下命令检查服务是否正常运行:

curl http://localhost:8080/app/health

如果返回健康状态响应,说明Reverb服务已正常启动,此时前端的WebSocket连接即可通过Nginx代理正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:47:18