nginx实现多个端口多开

nginx配置文件

#开启wws必须要加1
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
#开启wws必须要加2
#这里可以写多个ip地址
upstream websocket {
    server 120.78.20.86:445;  #这里可以是多个服务端IP(分多行),设置权重就可以实现负载均衡了
    server 120.78.20.86:8383;
}

#支持 wss 
#多个加多个server 3
server {
    listen 446 ssl;   #多个监听的安全端口
    server_name wwe.com; #域名
    #ssl on; 
    ssl_certificate   cert/2020/www.ve.com.pem;   #证书
    ssl_certificate_key  cert/2020/wlive.com.key;
    ssl_session_timeout 20m;
    ssl_verify_client off;
    location / {  
        proxy_pass http://120.78.20.86:8383;   #这里是转向wss的关键 4
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection "Upgrade";  
    }  
}

server {
      #  listen       80;
        listen       443 ssl http2;
        server_name  www.yun-live.com;
        #ssl on;

     
        ssl_certificate   cert/2020/wn-live.com.pem;
        ssl_certificate_key  cert/2020/wwn-live.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!3DES:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #location / {
        #    proxy_pass http://127.0.0.1:80;
        #    #proxy_redirect off;
    #       proxy_set_header Host $host;
    #       proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    #   
        #               proxy_set_header X-Forwarded-Proto $scheme;
        #   
        #}
       
        root   /home/wwwroot/yunxc/public;
        index  index.php index.html index.htm;
        
        #location / {
        #    try_files $uri $uri/ /index.php?$query_string;
        #}
        #proxy_set_header           X-Forwarded-Proto  $scheme;
    
        location / {
            #proxy_set_header           X-Forwarded-Proto  $scheme;
            #root   /alidata/www/yunxc/public;
            #index  index.php index.html index.htm; 
        if ($host != 'www.yun-live.com') {
              rewrite ^/(.*)$ https://www.yun-live.com/$1 permanent;
        }
       
            if (!-e $request_filename) {
              rewrite  ^(.*)$  /index.php?s=/$1  last;
              break;
            }
        }
        location ~ .*\.(php|php5)?$
        {
               #fastcgi_pass  127.0.0.1:9001;
                fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
        }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
                expires 30d;
        }

    location ~ .*\.(js|css)?$
        {
                expires 1h;
        }
           #wss协议转发 
           #一个只要加这里就可以了 。两个在外面加个server 
location /wss {
        proxy_pass https://wwe.com:445;#代理到上面的地址去,
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

  }

位置:/usr/local/nginx/conf/vhost
修改配置位置
cd /usr/local/nginx/conf/vhost/

配置好重启nginx命令
重启nginx 因为是源码安装的所以重启就是:
cd /usr/local/nginx/sbin
现在位置 /alidata/server/nginx-1.4.4/sbin
./nginx -t :检查nginx配置文件是否有错误
./nginx -s reload :不停nginx服务载入新配置文件

注:
监听端口要在安全规则里面添加才可以使用

前端接收

<script language="javascript" type="text/javascript">
    var live_id=$('#live_id').val()
    // 与GatewayWorker建立websocket连接,域名和端口改为你实际的域名端口
    // ws = new WebSocket("wss://127.0.0.1:8383");  //本地
    ws = new WebSocket("wss://www.yve.com:446"); //线上

    console.log('wx',ws)
    // 服务端主动推送消息时会触发这里的onmessage
    ws.onmessage = function(e){
      console.log('wx',e)
        // json数据转换成js对象
        var data = eval("("+e.data+")");
        var type = data.type || '';
         console.log('type',type)
        switch(type){
            case 'inits':
                getinfochat_a(data.client_id);
                  Obj.start(); 
                break;
            case 'users': //3. 查询在线用户
                 console.log('data',data)
                 $('.tagsl').text(data.count)
                break;
            case 'say': //4 提示进入聊天室
                 console.log('data',data)
                   //此格式与dataa.js的数据格式必须一致
                  var addVal = {
                    img : data.data.avatarUrl,
                    text : data.data.content
                  }
                  //添加进数组
                  Obj.data.unshift(addVal); //
                  Obj.start(); 
                   datalength++
                break;
            // default :
                // alert(e.data);
        }
    };

    // 绑定用户 通知所有人
    function getinfochat_a (client_id) {
      $.post('/getinfocha',{client_id:client_id,live_id:live_id,'_token':'{{csrf_token()}}'},function (e) {
        console.log(e)
      })
    }


</script>
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值