You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache+Ratchet+SSL+Laravel环境下WebSocket配置失败求助

问题排查与解决方案

1. 检查Apache反向代理配置(核心步骤)

前端访问的wss://server_name.fr/ws/game是443端口的HTTPS路径,Apache必须将该路径的请求转发到Ratchet监听的1176端口。确保站点配置包含以下规则,且启用了必要模块:

<VirtualHost *:443>
    ServerName server_name.fr
    # 已有SSL配置(SSLCertificateFile、SSLCertificateKeyFile等保留)

    # WebSocket反向代理规则
    ProxyPass /ws/game ws://localhost:1176/game
    ProxyPassReverse /ws/game ws://localhost:1176/game
</VirtualHost>

执行以下命令启用必需模块:

a2enmod proxy proxy_http proxy_wstunnel
service apache2 restart

2. 验证Ratchet服务器配置

检查Ratchet代码的监听地址与路由匹配:

use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use App\WebSocket\GameWebSocket; // 替换为你的WebSocket类命名空间

// 必须监听0.0.0.0,允许Apache转发请求
$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new GameWebSocket()
        )
    ),
    1176,
    '0.0.0.0'
);

$server->run();

如果使用Ratchet的路由组件,确保/game路由正确注册:

use Ratchet\Router\Route;
use Ratchet\Router\Router;

$router = new Router();
$router->add(new Route('/game', new GameWebSocket()));

$server = IoServer::factory(new HttpServer(new WsServer($router)), 1176, '0.0.0.0');

3. 前端代码与浏览器调试

确认前端WebSocket实例路径正确,同时利用浏览器开发者工具排查:

const ws = new WebSocket('wss://server_name.fr/ws/game');

ws.onopen = () => console.log('连接成功');
ws.onerror = (err) => console.error('连接错误详情:', err);
ws.onclose = (event) => console.log('连接关闭:', event.code, event.reason);

查看「网络」标签的wss请求状态:

  • 404:Apache未正确转发路径,检查ProxyPass规则顺序
  • 503:Ratchet服务未启动,或Apache无法访问1176端口
  • SSL错误:确认证书域名与server_name.fr一致,且证书有效

4. 端口与防火墙检查

  • 执行telnet localhost 1176,能连接则说明Ratchet服务正常监听
  • 放开1176端口防火墙规则:ufw allow 1176(适用于ufw防火墙)

5. Laravel环境冲突处理

若Laravel路由与WebSocket路径冲突,需调整Apache配置顺序,让WebSocket代理规则优先于Laravel重写规则:

# 先配置WebSocket代理
ProxyPass /ws/game ws://localhost:1176/game
ProxyPassReverse /ws/game ws://localhost:1176/game

# 再配置Laravel重写规则
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]

内容的提问来源于stack exchange,提问作者DeveCout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 09:35:11