如何使用nginx配置wss且ws能同时使用

通讯协议 ningjian

如何使用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端口号
希望能帮助到大家尽快解决问题

发表评论:

验证码