很难为此提供正确的信息。已经好几天了。我让 Pusher 在 Vagrant 中运行良好。我使用基本的 Horizon 配置(产品/本地无关紧要)来支持它:
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => [
env('DEFAULT_QUEUE', 'default'),
env('COMMENT_EVENT_QUEUE', 'comms')
],
'balance' => 'auto',
'processes' => 10,
'tries' => 3,
],
所有这一切都在Laravel 的 Stancl Tenancy 背后。一切正常。我已经在生产箱上安装了完全相同的系统。这也很好。
我现在已经在一个使负载平衡器和 SSL 复杂化的业务中安装了相同的东西。所以我的盒子只看到最后一英里的 http 流量。我\URL::forceScheme('https');
在启动时使用它来让一切都玩得很好,而且它可以工作。
我使用这个 conf 文件从 Supervisor 启动 Horizon:
[program:horizon]
process_name=%(program_name)s
startsecs=0
command=php /var/www/er2/artisan horizon
user=www-data
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/www/er2/storage/logs/horizon.log
stopwaitsecs=3600
问题:
通过主管运行 Horizon(或 queue:work)无法发送推送消息,并出现以下错误:
{"exception":"[object] (Illuminate\Broadcasting\BroadcastException(code: 0): at /var/www/crisis/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:121)
这是踢球者:如果我从命令行启动 Horizon(或 queue:work),它就可以工作。 只有当我用 Supervisor 启动它时,它才会失败。
有人知道从哪里开始吗?
我试过的:
- 在 Supervisor 中更改用户 - 仍然失败
- 将主管更改为启动队列 - 仍然失败
- 在命令行上更改为 root - 仍然有效
- 更换工人——如果主管仍然失败
- 更多,但没有什么不同。
在供应商文件中转储变量,我能找到的唯一区别是:
与主管(失败):
RESPONSE --> {"body":false,"status":0}
使用命令行(成功):
RESPONSE --> {"body":"{}","status":200}
当 Horizon 从 Supervisor 与命令行启动时,我无法缩小 Pusher 的不同之处。有什么想法吗?