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

如何在Apache中运行WebSocket?连接异常问题求助

Apache反向代理WebSocket连接失败(状态码1006)解决方案

1. 启用必要的Apache模块

WebSocket反向代理依赖三个核心模块,执行以下命令启用并重启Apache:

sudo a2enmod proxy proxy_http proxy_wstunnel
sudo systemctl restart apache2

2. 修正虚拟主机配置

编辑/etc/apache2/sites-available/mydomain.com.conf,添加或调整代理规则,确保WebSocket请求被正确转发到8080端口的服务:

<VirtualHost *:80>
    ServerName mydomain.xyz

    # 基础WebSocket代理转发
    ProxyPass /ws/ ws://localhost:8080/
    ProxyPassReverse /ws/ ws://localhost:8080/

    # 处理WebSocket协议升级请求
    RewriteEngine On
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /ws/(.*) ws://localhost:8080/$1 [P,L]
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /ws/(.*) http://localhost:8080/$1 [P,L]

    # 保留原有虚拟主机配置(如DocumentRoot、日志路径等)
</VirtualHost>

3. 验证WebSocket服务本身可用性

先跳过Apache代理,直接测试本地服务是否正常:

# 需先安装wscat:npm install -g wscat
wscat -c ws://localhost:8080

如果能成功连接,说明服务本身无问题,问题出在Apache代理配置;若连接失败,检查Python服务是否正常运行、8080端口是否被占用。

4. 重启Apache并测试

保存配置后重启Apache,再用客户端连接ws://mydomain.xyz/ws/验证:

sudo systemctl restart apache2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:45:58