嗨,在开始本教程之前,我建议您阅读《Laravel Reverb 终极指南:实时通知》,因为本教程假设您已经在本地设置了 Laravel Reverb 并可以使用。
首先,了解端口连接的工作原理非常重要。 Laravel Reverb 使用两个端口:一个用于连接到 WebSocket,另一个用于服务器通信。
在这种情况下,我们将使用端口 443 进行公共访问。此端口对于访问网页的用户至关重要,因为它处理安全的 HTTPS 流量。
对于 WebSocket 通信,我们将使用端口 6001。该端口不需要公开访问,因为它仅由服务器内部用于实时通信。
现在,让我们修改 .env
REVERB_HOST="your.domain.com" # your domain name here REVERB_PORT=443 # The public port used by all clients on your website REVERB_SCHEME=https # Required for prod environment
他们在你的 nginx 配置中放置下一个代码。
server { listen 443 ssl; listen [::]:443 ssl; server_name your.server.name; {{ssl_certificate_key}} {{ssl_certificate}} location /app/ { proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header SERVER_PORT $server_port; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass http://0.0.0.0:6001; } location /apps { proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header SERVER_PORT $server_port; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass http://0.0.0.0:6001; } }
我们在这里做什么?此设置将所有 WebSocket 流量从面向公众的端口 443 安全地重定向到端口 6001 上的内部 WebSocket 服务器,从而实现客户端和服务器之间安全高效的实时通信。
对于 Apache 配置,您可以阅读这些帖子。
完成配置后,下一步就是启动服务。在现实场景中,您应该使用进程管理器,例如 Supervisor,以确保服务持续运行并在需要时自动重新启动。
但是,出于测试目的,您可以从命令行手动运行该命令。
php artisan reverb:start --port=6001 --debug
现在我们已准备好在生产环境中使用 WebSocket。请记住在测试之前重新启动服务并清除缓存,以确保一切顺利运行。
这篇文章可以帮助我们更深入地了解这个主题。
我希望这可以帮助您入门!下一篇文章见。
以上是生产环境中的 Laravel Reverb的详细内容。更多信息请关注PHP中文网其他相关文章!