Nginx配置WebSocket 【支持wss与ws连接】

一、对wss与nginx代理wss的理解:

1、wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。 

2、利用nginx代理wss【通讯原理及流程】

(1)、客户端发起wss连接连到nginx

(2)、nginx将wss协议的数据转换成ws协议数据并转发到Workerman的websocket协议端口

(3)、Workerman收到数据后做业务逻辑处理

(4)、Workerman给客户端发送消息时,则是相反的过程,数据经过nginx/转换成wss协议然后发给客户端

二、nginx配置ssl和wss


server
{
    listen 80;
    listen 443 ssl;
    server_name 域名;

    ssl on;
    ssl_certificate 证书.crt;
    ssl_certificate_key 证书.key;
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;
    
    location /wss/  {   
     proxy_pass http://127.0.0.1:82/;        #通过配置端口指向部署websocker的项目
     proxy_http_version 1.1;    
     proxy_set_header Upgrade $http_upgrade;    
     proxy_set_header Connection "Upgrade";    
     proxy_set_header X-real-ip $remote_addr;
     proxy_set_header X-Forwarded-For $remote_addr;
     }
}

踩坑点:

1、location /wss/ {  错写成  location /wss {

2、proxy_pass http://127.0.0.1:82/   错写成  proxy_pass http://127.0.0.1:82  

三、通过wss和ws连接websocket

1、wss连接:

      (1)、 wss://域名/wss/项目访问  如:wss://zhixiangxiaoyuan.club/wss/insight/websocket/*

     (2)、   ws://域名:82/项目访问  如:ws://zhixiangxiaoyuan.club:82/insight/websocket/*

 参考:

 https://wenda.workerman.net/question/2388

 https://blog.csdn.net/nw_ningwang/article/details/88946991

         

猜你喜欢

转载自blog.csdn.net/qq_35808136/article/details/89677749
今日推荐