如果按本帖仍无法解决https(SSL)服务器下WeLive5正常使用的问题,请拍官方提供的淘宝安装调试服务(22元):
https://item.taobao.com/item.htm?id=620508542706
注:此帖内容仅适用于WeLive5.x.x,WeLive6.x.x仅需要在welive后台设置即可。
1. 设置服务器(iptables防火墙及云服务器安全组或安全策略)先开放端口: 8430
WeLive后台基本设置中保持Socket服务端口号为:8430不变
8430端口:用于连接客户端(浏览器)
8431端口:内部socket连接服务端口,其它应用或程序不能占用
2. WeLive5.7.0或以上版本,请直接跳到第3步
修改WeLive的 ./includes/class.Websocket.php 文件:
// 绑定端口
if(!socket_bind($this->socket, $this->host, $this->port)){
if(!socket_bind($this->socket, "0.0.0.0", $this->port)) return false;
}
改成:
// 绑定端口
if(!socket_bind($this->socket, $this->host, "8431")){
if(!socket_bind($this->socket, "0.0.0.0", "8431")) return false;
}
3. 修改服务器配置:
I). Apache服务器在SSL配置文件后添加以下代码, 参考如下: /usr/local/apache/conf/extra/httpd-ssl.conf
#监听8430端口
Listen 8430
#添加虚拟主机
<VirtualHost *:8430>
#按你的实际域名修改
ServerName xxxx.com:8430
SSLEngine on
SSLProxyEngine on
#按你的服务器SSL实际密钥文路径修改
SSLCertificateFile "/usr/local/apache2/conf/your_ssl_file.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/your_ssl_file.key"
#将8430端口的https转发到8431的ws协议
ProxyRequests off
ProxyPass / http://127.0.0.1:8431
ProxyPassReverse / http://127.0.0.1:8431
</VirtualHost>
II). Nginx服务器修改Nginx配置文件, 参考如下: /etc/nginx.conf
http {
...........
#添加server
server{
listen 8430 ssl http2;
#按你的实际域名修改
server_name xxxxx.com;
#按你的服务器SSL实际密钥文路径修改
ssl_certificate /etc/nginx/your_ssl_file.crt;
ssl_certificate_key /etc/nginx/your_ssl_file.key;
location / {
proxy_pass http://127.0.0.1:8431;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
...........
}
4. 重启Apache或Nginx (有可能需要reboot重启服务器)
.