Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Websocket apache代理存在ssl问题_Node.js_Html_Ssl_Websocket_Socket.io - Fatal编程技术网

Node.js Websocket apache代理存在ssl问题

Node.js Websocket apache代理存在ssl问题,node.js,html,ssl,websocket,socket.io,Node.js,Html,Ssl,Websocket,Socket.io,所以我有一个使用https、websockets和socket.io(带node.js)的站点。websocket最初将尝试直接连接 var socket = io('https://' + socket_ip_addr + ":8443",{'forceNew': true, 'secure': true}); 这是我的socket.io代码(可以直接连接) 这工作得非常好,但有些用户可能会因为任何原因阻塞该随机端口,因此我有一个回退方法,尝试将端口443与apache代理一起使用 var

所以我有一个使用https、websockets和socket.io(带node.js)的站点。websocket最初将尝试直接连接

var socket = io('https://' + socket_ip_addr + ":8443",{'forceNew': true, 'secure': true});
这是我的socket.io代码(可以直接连接)

这工作得非常好,但有些用户可能会因为任何原因阻塞该随机端口,因此我有一个回退方法,尝试将端口443与apache代理一起使用

var socket = io('https://' + socket_ip_addr,{'forceNew': true, 'secure': true});
apache设置:

<VirtualHost *:443>
    ServerName somewebsite.ca
    ServerAlias somewebsite.ca
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile ../certs/ssl.crt
    SSLCertificateKeyFile ../certs/ssl.key

    RewriteEngine on
    RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
    RewriteCond %{QUERY_STRING} transport=websocket    [NC]
    RewriteRule /(.*)           wss://localhost:8443/$1 [P,L]

    ProxyRequests off
    ProxyPass /socket.io/ https://localhost:8443/socket.io/
    ProxyPassReverse /socket.io/ https://localhost:8443/socket.io/
</VirtualHost>

ServerName somewebsite.ca
ServerAlias somewebsite.ca
DocumentRoot/var/www/html
斯伦金安
SSLCertificateFile../certs/ssl.crt
SSLCertificateKeyFile../certs/ssl.key
重新启动发动机
RewriteCond%{REQUEST_URI}^/socket.io[NC]
RewriteCond%{QUERY_STRING}transport=websocket[NC]
重写规则/(*))wss://localhost:8443/$1[P,L]
代理请求关闭
ProxyPass/socket.io/https://localhost:8443/socket.io/
ProxyPassReverse/socket.io/https://localhost:8443/socket.io/
在切换到https之前,我经常这样做,一切都很好。现在我正在尝试使用https和wss,这给了我很好的ol'错误500(内部服务器错误)

我真正的问题是:我如何开始尝试调试出了什么问题。我可以看一些标题吗?我可以在中间步骤的某个地方打印一些信息吗?


谢谢。

好的。。我只是个哑巴。我检查了apache日志并添加了一些额外的命令,现在它可以正常工作了。其他事项包括:

SSLProxyEngine on //apache log told me about this
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
RequestHeader set Front-End-Https "On"

好的。。我只是个哑巴。我检查了apache日志并添加了一些额外的命令,现在它可以正常工作了。其他事项包括:

SSLProxyEngine on //apache log told me about this
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
RequestHeader set Front-End-Https "On"