nginx配置支持https和wss(websocket)协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于nginx配置支持https和wss(websocket)协议的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置https和wss

nginx ws怎么变成wss

Websocket配置证书支持wss

nginx配置websocket支持wss

Swoole配置ssl(支持wss)

用于 SSL PHP 站点和 Websockets WSS 的 Nginx 配置?