如何在使用 Apache 服务器的制作中设置 Laravel Reverb

问题描述 投票:0回答:1

我正在开发一个网站,这是一个使用 Laravel 11 和 View 3 和 Reverb(目前没有 SSR 的 SPA)的在线游戏。在本地主机上,Websocket 可以工作,但是当我使用 Apache 将其上传到生产服务器时,它们无法工作。

On localhost in .env I have
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME=http

在生产中我将它们更改为

REVERB_HOST="www.mydomain.com"
REVERB_PORT=443
REVERB_SCHEME=https

还在我添加的虚拟主机文件中

<VirtualHost 192.168.100.12:443>
...
 SSLEngine On
 ProxyPass "/app" "ws://0.0.0.0:8080/app"
 ProxyPassReverse "/app" "ws://0.0.0.0:8080/app"
</VirtualHost>

在网络/websockets 的浏览器选项卡中进行这些设置后,我现在发现已建立连接

{"event":"pusher:connection_established","data":"{\"socket_id\":\"325487270.879942365\",\"activity_timeout\":30}"}
{"event":"pusher:subscribe","data":{"auth":"yzvrte6lfsudidxcfwkg:4055a502db436191e71198aeadf394db1defd0850c86e55f37fde6d59a9e83eb","channel":"private-user.3"}}
{"event":"pusher_internal:subscription_succeeded","data":"{}","channel":"private-user.3"}

以及定期执行 ping 操作。但是当服务器尝试通过 websocket 发送数据时,我收到错误

The POST method is not supported for route apps/174502/events. Supported methods: GET, HEAD.

该路由位于 /vendor/laravel/reverb/src/Servers/Reverb/Factory.php


    protected static function pusherRoutes(): RouteCollection
    {
        $routes = new RouteCollection;
...
        $routes->add('events', Route::post('/apps/{appId}/events', new EventsController));
        return $routes;
    }

为什么它给我这个错误?我可能在配置中做错了什么。有谁知道如何为 Apache 正确配置 Reverb?

laravel apache laravel-reverb
1个回答
0
投票

经过近 2 天的努力,我终于成功地让 Reverb 在生产中的 AWS LAMP 服务器上运行。
您需要在 .env 文件中添加更多内容


BROADCAST_CONNECTION=reverb 
QUEUE_CONNECTION=sync
REVERB_SERVER=reverb
REVERB_SERVER_HOST=0.0.0.0
REVERB_SERVER_PORT=8080
REVERB_APP_ID= replace_with_your_keys
REVERB_APP_KEY=replace_with_your_keys
REVERB_APP_SECRET=replace_with_your_keys
REVERB_HOST=yourdomain.com
REVERB_PORT=443
REVERB_SCHEME=https

# if you use vite add this too, same info
VITE_REVERB_APP_KEY=replace_with_your_keys
VITE_REVERB_HOST=yourdomain.com
VITE_REVERB_PORT=443
VITE_REVERB_SCHEME=https

仅此而已,您无需设置反向代理或打开任何端口。

© www.soinside.com 2019 - 2024. All rights reserved.