laravel Reverb端口配置区别
发布时间:2025-03-21 06:14
在 Reverb 这个 WebSocket 服务器的配置中,涉及 两个不同的端口配置,分别是 REVERB_SERVER_PORT
和 REVERB_PORT
,它们的作用不同:
1. REVERB_SERVER_PORT
(服务端监听端口)
- 这个端口决定 Reverb 服务器本身运行在哪个端口,即 Laravel 内置的 WebSocket 服务器监听的端口。
- 默认是
8080
,即0.0.0.0:8080
,允许所有网络接口访问。 - 你可以通过
.env
文件或者php artisan reverb:start --port=9000
来修改它,例如:
REVERB_SERVER_HOST=0.0.0.0
REVERB_SERVER_PORT=9000
这样,Reverb 服务器就会监听 `0.0.0.0:9000`。
2. REVERB_PORT
(应用程序连接的端口)
- 这个端口是 Laravel 应用 用于广播 WebSocket 消息时连接的端口。
- 通常,它指向一个 对外暴露的 WebSocket 地址,可能是负载均衡器或代理服务器。
- 例如,在生产环境中:
REVERB_HOST=ws.laravel.com
REVERB_PORT=443
这表示 Laravel 应用会连接 `wss://ws.laravel.com:443`,而 `443` 是标准的 HTTPS WebSocket 端口。
3. 总结两者的区别
配置项 | 作用 | 默认值 | 可能的修改方式 |
---|---|---|---|
REVERB_SERVER_PORT |
Reverb 服务器监听的端口 | 8080 | 通过 .env 或 php artisan reverb:start --port=9000 |
REVERB_PORT |
Laravel 连接 WebSocket 服务器的端口 | 无 | 由 Laravel 应用使用,通常是 443 (生产环境)或 8080 (开发环境) |
4. 示例场景
- 本地开发
- 你可以直接运行:
php artisan reverb:start
这样,Reverb 服务器会监听 `0.0.0.0:8080`,Laravel 也会连接 `ws://localhost:8080`。
- 生产环境
- 你的 Reverb 服务器可能运行在
8080
端口,但通过 Nginx 代理 提供wss://ws.laravel.com:443
:
- 你的 Reverb 服务器可能运行在
REVERB_SERVER_HOST=0.0.0.0
REVERB_SERVER_PORT=8080
REVERB_HOST=ws.laravel.com
REVERB_PORT=443
- Nginx 代理示例:
server {
listen 443 ssl;
server_name ws.laravel.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
- 这样,外部用户访问
wss://ws.laravel.com:443
,而 Reverb 服务器实际运行在127.0.0.1:8080
。
简单来说:
REVERB_SERVER_PORT
负责 Reverb 服务器监听在哪个端口。REVERB_PORT
负责 Laravel 连接哪个 WebSocket 端口,可能是代理服务器或负载均衡器的端口。