在httpd.conf文件中,启用 proxy_wstunnel_module 模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
在ssl.conf文件中,配置SSL及代理
<VirtualHost _default_:443> DocumentRoot "/var/www/html/welive" ServerName gzmc168.cn ServerAlias e.gzmc168.cn ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLCertificateFile /etc/httpd/ssl/gzmc168/e.gzmc168.cn_public.crt SSLCertificateKeyFile /etc/httpd/ssl/gzmc168/e.gzmc168.cn.key SSLCertificateChainFile /etc/httpd/ssl/gzmc168/e.gzmc168.cn_chain.crt #这块就是最主要的 SSLProxyEngine on ProxyRequests Off ProxyPass /wss ws://47.244.118.60:8430 #wss://服务器ip:websocket端口号 ProxyPassReverse /wss wss://e.gzmc168.cn/wss #客户端的域名 </VirtualHost>
客户端js连接
// 证书是会检查域名的,请使用域名连接 ws = new WebSocket("wss://e.gzmc168.cn/wss"); ws.onopen = function() { alert("连接成功"); ws.send(‘tom‘); alert("给服务端发送一个字符串:tom"); }; ws.onmessage = function(e) { alert("收到服务端的消息:" + e.data); };
记得重启服务器