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

如何在Ant Media中配置Apache2作为反向代理并解决WebSocket连接失败问题

如何在Ant Media中配置Apache2作为反向代理并解决WebSocket连接失败问题

我懂你现在的困扰——把Apache2当成Ant Media Server的反向代理时,HTTP/HTTPS连接都正常,但WebSocket死活连不上,导致WebRTC直播流没法推送。这其实是Apache默认没开启WebSocket代理所需的模块和配置,咱们一步步来解决:

1. 启用Apache必需的代理模块

WebSocket的代理依赖proxy_wstunnel模块,同时还要确保基础的代理模块也开启了。在终端里运行以下命令:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_wstunnel
a2enmod ssl # 如果用HTTPS的话,这个模块必须开启

执行完后重启Apache让模块生效:

systemctl restart apache2

2. 配置虚拟主机(区分HTTP/HTTPS)

情况一:HTTP环境配置

假设你的Ant Media Server运行在本地默认HTTP端口5080,打开你的Apache虚拟主机配置文件(比如/etc/apache2/sites-available/your-domain.conf),替换或添加以下内容:

<VirtualHost *:80>
    ServerName your-domain.com

    # 代理普通HTTP请求到Ant Media
    ProxyPass / http://localhost:5080/
    ProxyPassReverse / http://localhost:5080/

    # 关键:代理WebSocket请求(Ant Media常用/ws、/webrtc路径)
    ProxyPass /ws ws://localhost:5080/ws
    ProxyPassReverse /ws ws://localhost:5080/ws

    ProxyPass /webrtc ws://localhost:5080/webrtc
    ProxyPassReverse /webrtc ws://localhost:5080/webrtc
</VirtualHost>

情况二:HTTPS环境配置(生产环境推荐)

如果用HTTPS,需要配置SSL证书,同时WebSocket要对应wss协议,配置示例如下:

<VirtualHost *:443>
    ServerName your-domain.com

    # SSL证书配置,替换成你自己的证书路径
    SSLEngine on
    SSLCertificateFile /path/to/your/certificate.pem
    SSLCertificateKeyFile /path/to/your/private-key.pem
    SSLCertificateChainFile /path/to/your/chain.pem # 如有链式证书请添加

    # 代理HTTPS请求到Ant Media的默认HTTPS端口5443
    ProxyPass / https://localhost:5443/
    ProxyPassReverse / https://localhost:5443/

    # 代理WSS(加密WebSocket)请求
    ProxyPass /ws wss://localhost:5443/ws
    ProxyPassReverse /ws wss://localhost:5443/ws

    ProxyPass /webrtc wss://localhost:5443/webrtc
    ProxyPassReverse /webrtc wss://localhost:5443/webrtc
</VirtualHost>

3. 验证配置并重启

配置完成后,先检查Apache配置有没有语法错误:

apache2ctl configtest

如果输出Syntax OK,就重启Apache:

systemctl restart apache2

额外注意事项

  • 确认Ant Media Server的端口是否正确:默认HTTP是5080,HTTPS是5443,如果你的Ant Media改了端口,要同步修改配置里的端口号。
  • 检查本地防火墙:确保Apache可以访问Ant Media的端口(比如5080、5443),可以用ufw allow in from 127.0.0.1 to any port 5080这类命令放行本地访问。
  • 查看Ant Media日志:如果还是有问题,去Ant Media的日志目录看请求记录,确认WebSocket的请求路径,再对应添加ProxyPass规则。

备注:内容来源于stack exchange,提问作者Usama

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:33:13