特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

1、基本配置

      upstream mqttServer {
server mqttserverip1:8882 weight=1;
server mqttserverip1:8882 weight=1;
#check interval=3000 rise=2 fall=5 timeout=1000;
} server {
listen 443 ssl;
server_name localhost;
ssl on; //如果是Linux版本nginx需要配置此项,Windows版本nginx不需要配置
ssl_certificate E:/project/nginx-1.13.6/certfile/pc.crt;
ssl_certificate_key E:/project/nginx-1.13.6/certfile/pc.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /mqtt {
proxy_pass http://mqttServer;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

2、为什么需要用wss?

Websocket使用 ws 或 wss 的统一资源标志符,类似于 HTTP 或 HTTPS,其中 wss 表示在 TLS 之上的 Websocket ,相当于 HTTPS 了。如:

ws://example.com/chat
wss://example.com/chat

默认情况下,Websocket 的 ws 协议使用 80 端口;运行在TLS之上时,wss 协议默认使用 443 端口。其实说白了,wss 就是 ws 基于 SSL 的安全传输,与 HTTPS 一样样的道理。

如果你的网站是 HTTPS 协议的,那你就不能使用 ws:// 了,浏览器会 block 掉连接,和 HTTPS 下不允许 HTTP 请求一样。

3、注意事项

需要做好CA证书,证书需要写入指定的域名,不然会有问题。

4、参考网站

http://www.cnblogs.com/mafly/p/websocket.html

05-11 18:10