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

14 篇文章 0 订阅
11 篇文章 2 订阅

一、对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

 

 

         

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值