端口443上的Apache代理连接正常,但没有将数据返回给客户端

时间:2016-06-27 20:35:46

标签: apache sockets httpd.conf mod-proxy

我正在尝试将端口443上的WSS请求转发给侦听服务。我已经几乎通过Apache的mod_proxy模块获得了一个有效的转发器/代理。

websocket客户端(在浏览器中)握手,并通过转发端口连接。但是客户端没有收到任何数据。它似乎正在以一种方式工作,但不会将响应/数据返回到正确的位置。

似乎是路由问题。以下是我的httpd.conf设置:

<VirtualHost *:443>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /var/www/prod/domain
    ServerName domain.com
    ErrorLog logs/prod-error_log
    CustomLog logs/prod-access_log common

    SSLEngine On

    SSLCertificateFile  /etc/letsencrypt/live/domain.com/cert.pem
    SSLCertificateKeyFile  /etc/letsencrypt/live/domain.com/privkey.pem
    SSLCertificateChainFile  /etc/letsencrypt/live/domain.com/fullchain.pem

    SSLProxyEngine On
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia On

    ProxyPass /radio wss://172.31.47.171:8082/
    ProxyPassReverse /radio wss://172.31.47.171:8082/

    ErrorDocument 403 '<h1>Unauthorized Access</h1>'
</VirtualHost>

客户端连接使用:

var host = 'wss://domain.com/radio/';
socket = new WebSocket(host);

最后,套接字处理过程连接在:

172.31.47.171:8082

在阅读完所有内容之后,感觉这可能是ProxyPassProxyPassReverse的问题 - 但我已经尝试了我能想到的所有内容。

当浏览器与端口侦听脚本握手时,端口侦听脚本显示成功的“客户端连接”消息,但是只有待处理的请求永远挂起 - 没有数据返回。

环境设置:

Server version: Apache/2.4.18 (Amazon)
Amazon Linux EC2

如果有人能指出我正确的方向(即使只是调试 发送回复的地方)我会很感激!我可以看到错误日志中没有任何内容 - 只是没有数据返回浏览器。

编辑:

因此,放弃SSL而仅支持普通ws:协议可以解决问题 - 但显然它不使用wss。我还在调查为什么wss:没有发回任何数据。

0 个答案:

没有答案