找回密码
 立即注册

手机短信,快捷登录

QQ登录

只需一步,快速开始

查看: 1776|回复: 0

用nginx反向代理功能将WS转为加密websocket (wss)

[复制链接]

4

主题

2

回帖

20

积分

新手上路

积分
20
发表于 2024-1-6 16:40:42 | 显示全部楼层 |阅读模式

用nginx反向代理功能将WS转为加密websocket (wss)
原来写的服务器端程序支持websocket非加密协议,即仅支持 ws://ip/file 形式的访问,现在网站的主协议变成了https了,再通过ws://协议来访问原服务器,浏览器阻止了。查找原因就是,如果一个网页的协议是https的,则内部的子连接必须也是安全套接字,如果原来是ws协议,则现在必须变为wss协议。

         由于时间紧,来不及修改原服务器了。发现nginx可以将ws协议通过反向代理的方式转为wss,目前苟且采用这种替代方案吧。

nginx配置成websocket的反向代理的配置文件如下 :

  1. server {
  2.         listen 443;
  3.         server_name live.xxxxx.com;

  4.         access_log logs/live.xxxxx.log main;

  5.         ssl on;
  6.         ssl_certificate /etc/live.xxxxx.com.cer;     # 这里是服务端的证书路径
  7.         ssl_certificate_key /etc/live.xxxxx.com.key; # 这里是秘钥路径
  8.         ssl_session_timeout 5m;
  9.         ssl_session_cache shared:SSL:10m;
  10.         ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
  11.         #ssl_protocols TLSv1 TLSv1.1 TLSv1.2 SSLv2 SSLv3;
  12.         ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
  13.         ssl_prefer_server_ciphers on;
  14.         ssl_verify_client off;

  15.         location /wss {
  16.                 proxy_redirect off;
  17.                 proxy_pass http://127.0.0.1:8006/live;
  18.                 proxy_http_version 1.1;
  19.                 proxy_set_header Connection "upgrade";
  20.                 proxy_set_header Upgrade $http_upgrade;
  21.                 proxy_set_header Host $host;
  22.                 proxy_set_header Remote_addr $remote_addr;
  23.                 proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
  24.                 proxy_read_timeout 100s;
  25.         }
  26. }
复制代码

如下两行表示将http协议头升级为websocket协议:

proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;


如需要人工处理请留言回帖,留下****v




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|老超市 ( 辽ICP备16008076号-2|辽公网安备21140302000151号 )

GMT+8, 2024-5-13 16:57 , Processed in 0.051313 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表