1. 设置服务器(iptables防火墙及云服务器安全组或安全策略)先开放两个端口: 8430, 8431
WeLive后台基本设置中保持Socket服务端口号为:8430不变
8430端口:用于连接客户端(浏览器)
8431端口:用于WeLive的php socket进程监听及处理从8430转发过来的消息
2. 修改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 _default_:8430>
#按你的实际域名修改
ServerName xxxx.com:8430
SSLEngine on
SSLProxyEngine on
#按你的服务器实际密钥文路径修改
SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
#将8430端口的https转发到8431的ws协议
ProxyRequests off
ProxyPass / ws://localhost:8431
ProxyPassReverse / ws://localhost:8431
</VirtualHost>
II). Nginx服务器修改Nginx配置文件, 如: /etc/nginx.conf
http {
...........
#添加server
server{
listen 8430;
ssl on;
#按你的实际域名修改
server_name xxxxx.com;
#按你的服务器实际密钥文路径修改
ssl_certificate /etc/nginx/server.crt;
ssl_certificate_key /etc/nginx/server.key;
location / {
proxy_pass ws://localhost: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. 重启服务器(reboot)