记录nginx wss 代理转发

var uniqueClientID = getUniqueID();

if ('WebSocket' in window) {
    websocket = new WebSocket("wss://aaa.com:8008/websocket/" + uniqueClientID + "");

} else {
    console.log("您的浏览器不支持对话连接");
}

websocket.onopen = function () {
    console.log("连接成功");
}

websocket.onclose = function () {
    console.log("退出连接");
}

websocket.onmessage = function (event) {
    console.log("收到消息" + event.data);
}

websocket.onerror = function () {
    console.log("连接出错");
}

nginx转发之前 WebSocket的链接是ws://aaa.com:8008/websocket/a, a是一个变量
转发后的链接是wss://aaa.com:8008/websocket/a

我的nginx配置

server {
        listen       8008 ssl;
        server_name  aaa.com;

        ssl_certificate      ssl/4952229_aaa.com.pem;
        ssl_certificate_key  ssl/4952229_aaa.com.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            root   html;
        }

        location ~ ^/websocket/(.+)$ {
		   proxy_pass http://aaa.com:8006/websocket/$1;
		   proxy_redirect off;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           # For WebSocket upgrade header proxy_http_version 1.1;
           #告诉nginx使用HTTP/1.1通信协议,这是websoket必须要使用的协议
           proxy_set_header Upgrade $http_upgrade;
           #告诉nginx,当它想要使用WebSocket时,响应http升级请求
           proxy_set_header Connection "upgrade";
           client_max_body_size 10m;
           client_body_buffer_size 512k;
           proxy_connect_timeout 300;
           proxy_send_timeout 300;
           proxy_read_timeout 300;
           add_header Access-Control-Allow-Origin '*';
        }
    }

**

像我这样将变量作为反向代理的地址最重要的一点

**
将变量作为反向代理的地址的话会在Nginx0.6.18以后的版本中都会提示“ no resolver defined to resolve ”的类似错误,而在proxy_pass 中直接设置地址却不会。,原因是Nginx0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server地址的时候一定要用resolver指令来制定DNS服务器的地址,所以解决这个问题的方法很简单:在nginx的配置文件中的http{}部分添加一行resolver 8.8.8.8;即可

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值