如何使用nginx配置wss且ws能同时使用,这两天由于项目的需要必须要用到wss,即pc端用ws, 手机端需要使用wss,我用的是C# 写的ws服务,软件启动时就会开启ws服务,那么要如何启用wss呢?
配置文件如下,也是在网上找了很久的资料
打开nginx配置文件,nginx.conf
在http中加入以下代码:
map $http_upgrade $connection_upgrade{
default upgrade;
'' close;
}
upstream websocket1{
server IP:原ws端口号;
}
server {
listen 将要使用的端口号 ssl;
server_name XXX.XXX.com;
ssl_certificate ../cert/对应的nginx SSL证书.pem;
ssl_certificate_key ../cert/对应的nginx SSL证书.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 / {
proxy_pass http://websocket1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
需要修改和注意的地方已经用中文标识准确的地方了,之前虽然看到代码 ,并不知道准确的含义
至于SSL证书,大家可以去阿里云或腾讯云上申请免费的ssl证书,一年有效期,不过生产环境中建议至少买最便宜的证书,有保障,当然免费的也可以用,但是不知道它是否是不是随时失去有效性
访问地址:
ws://域名:原ws端口号
wss://域名:ssl端口号
希望能帮助到大家尽快解决问题