为什么要使用ssl(wss连接)

鉴于目前websocket使用情况,部分人将其使用到带有https的网站上(ws连接)就会无法连接(当然你可以选择在浏览器上选择加载不安全脚本解决)。为了长远目标考虑还是选择让我们websocket支持ssl。如果让我们的websocket支持ssl需要如何操作呢,有两种方式第一种是让我们的程序(websocket支持ssl)本文暂时不介绍。本文采用第二种方式使用nginx反向代理支持ssl。

开始实际操作

1、你的nginx支持https访问
如果没有支持https访问那么首先将你的网站修改为https方法。
证书获取方式介绍给大家
1、你可以通过网站进行获取 https://freessl.cn/
2、如果你是阿里云、腾讯云等你可以通过控制中心申请属于你自己的证书

2、开始操练起来

修改自己网站.conf文件

反向代理配置/ws_protocol 为自定义websocket地址信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {

#此处省略其他配置信息

location /ws_protocol {
proxy_redirect off;
proxy_pass http://wss_svr; # 转发
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; # 升级协议头
proxy_set_header Connection upgrade;
proxy_read_timeout 600s;
}
}

地址信息配置,此配置信息在http 节点内即可。

1
2
3
4
5
6
7
8
9
10
http {

#此处省略其他配置信息

# 实际websocket服务器地址
upstream wss_svr {
server 127.0.0.1:5052 weight=1;
}

}

注意:wss_svr配置在http括号内,反向代理信息配置在server括号内。server在http内。