nginx配置支持https和wss,websocket协议

server {
        listen 80;
        listen 443 ssl http2;
        server_name lyz810.com;
 
        root /website/lyz810-main;
 
        ssl_certificate     certificate/lyz810.com.crt;
        ssl_certificate_key certificate/lyz810.com.key;
 
        location /websocket/ {
                internal;
 
                if ( $http_sec_websocket_protocol = "" ) {
                        return 400;
                }
                proxy_pass http://127.0.0.1:$arg_port;
                proxy_http_version 1.1;
                proxy_set_header X-Client-IP $remote_addr;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 300s;
        }
        location /chatRoom {
                rewrite .* /websocket/?port=8100;
        }
        location /chatRobot {
                rewrite .* /websocket/?port=8101;
        }
}

服务器内部起了2个websocket服务,分别监听8100、8101端口nginx根据访问不同的location,选择代理到那个ws服务商

/websocket/是个内部location,直接访问会报错

参考链接:

http://www.cnblogs.com/weidiao/p/7389744.html

http://www.cnblogs.com/mzsg/p/5623494.html