Nginx反向代理NodeJS实现WSS协议

Nginx站点反向代理配置

upstream nodewebsocket {
    //node监听10000端口作为websocket端口
    //这里使用443反向代理回nodejs的端口
    server 127.0.0.1:10000;
}
server{
    //监听443端口 我们配置的是http+wss
    listen 443;
    //开启ssl
    ssl on;
    //绑定域名
    server_name wss.hamm.cn;
    //配置pem
    ssl_certificate  /asserver/https/ws.hamm.cn/pem.pem;
    //配置key
    ssl_certificate_key   /asserver/https/ws.hamm.cn/key.key;
    //配置ssl版本开始
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    //配置ssl版本结束
    //ssl超时时间
    ssl_session_timeout 5m;
    location / {
        //使用nodewebsocket反向代理
        proxy_pass http://nodewebsocket;
        //代理版本1.1 防止426错误
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
	}
}

Server端Node环境中的Js代码

网页端HTML5代码实现Websocket连接