nginx中wss转发

# 实际websocket服务器地址,需要添加ssl证书
upstream wss_svr {
    server 172.31.180.40:9521;  
}

#PROXY-START/
location  ~* \.(php|jsp|cgi|asp|aspx)$
{
        proxy_pass http://wss_svr;      # 转发
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
        proxy_redirect off;
        proxy_pass http://wss_svr;      # 转发
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;   # 升级协议头
        proxy_set_header Connection upgrade;
}

#PROXY-END/

Nginx 是一款流行的开源Web服务器,它也支持处理WebSocket(WSS)协议,这是一种安全版的WebSocket,通过SSL/TLS加密通信。要在 Nginx 设置 WSS (WebSocket Secure),你需要做以下几个步骤: 1. 安装SSL/TLS证书:首先,你需要有一个有效的 SSL/TLS 证书,可以自签发或从可信证书颁发机构购买。将证书、私钥以及可能需要的 CA 链文件(例如 .crt 和 .key 文件)放置到适当的目录。 2. 配置 Nginx:编辑 Nginx 的配置文件(通常是 `nginx.conf` 或对应站点的 `server block`),添加以下内容: ```nginx server { listen 443; # 使用 https 端口 server_name yourdomain.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/private.key; ssl_protocols TLSv1.3 TLSv1.2; # 可选,指定使用的SSL版本 location /ws { proxy_pass http://yourapp:8080; # 指向 WebSocket 服务端的地址 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header Sec-WebSocket-Key $request头Sec-WebSocket-Key; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 其他常规的HTTPS配置... } ``` 这里,`/ws` 是 WebSocket 路径前缀,可以根据实际应用修改。`proxy_pass` 指令用于将接收到的 WebSocket 请求转发给后端应用(如Node.js或Django等)。 3. 重启 Nginx:保存配置并重启 Nginx 服务,让新的配置生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值