1

很难为此提供正确的信息。已经好几天了。我让 Pusher 在 Vagrant 中运行良好。我使用基本的 Horizo​​n 配置(产品/本地无关紧要)来支持它:

 '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 启动 Horizo​​n:

[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

问题

通过主管运行 Horizo​​n(或 queue:work)无法发送推送消息,并出现以下错误:

{"exception":"[object] (Illuminate\Broadcasting\BroadcastException(code: 0): at /var/www/crisis/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/PusherBroadcaster.php:121)

这是踢球者:如果我从命令行启动 Horizo​​n(或 queue:work),它就可以工作。 只有当我用 Supervisor 启动它时,它才会失败

有人知道从哪里开始吗?

我试过的:

  • 在 Supervisor 中更改用户 - 仍然失败
  • 将主管更改为启动队列 - 仍然失败
  • 在命令行上更改为 root - 仍然有效
  • 更换工人——如果主管仍然失败
  • 更多,但没有什么不同。

在供应商文件中转储变量,我能找到的唯一区别是:

与主管(失败):

RESPONSE --> {"body":false,"status":0}

使用命令行(成功):

RESPONSE --> {"body":"{}","status":200}

当 Horizo​​n 从 Supervisor 与命令行启动时,我无法缩小 Pusher 的不同之处。有什么想法吗?

4

0 回答 0