nginx解决https前端无法连接mq(ws)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx解决https前端无法连接mq(ws)相关的知识,希望对你有一定的参考价值。

参考技术A 常规http访问的地址下

var ws = new WebSocket('ws://ip:port/ws')

如果使用https,则提示需要使用wss

解决办法:nginx在1.3版本以后支持websocket协议,websocket连接进入的时候,进行一个连接升级将http连接变成websocket的连接

server

listen 443;

        server_name 域名;

        ssl on;

        ssl_certificate /root/ssl/1.crt;

        ssl_certificate_key /root/ssl/2.key; 

        ssl_session_timeout 5m;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

        ssl_prefer_server_ciphers on;

        location /ws

            proxy_pass http://ip:61614; # 代理mq

            proxy_read_timeout 60s;

            proxy_http_version 1.1;

            proxy_set_header Upgrade $http_upgrade;

            proxy_set_header Connection 'Upgrade';

 

前端页面使用: var ws = new WebSocket('wss://域名/ws'); 即可

以上是关于nginx解决https前端无法连接mq(ws)的主要内容,如果未能解决你的问题,请参考以下文章

无法连接MQ。求大神解决

Websocket 连接断开 - Apache MQ

nginx监控ws延迟

通过nginx 1.10.3和LetsEncrypt保护WebSocket连接

Unity+Firebase-Database [错误] WebSocket:ws_0 - 无法连接

无法连接到 Graphql 订阅?