nginx转发wss
时间: 2024-11-29 14:15:09 浏览: 19
Nginx 转发匹配规则的实现
5星 · 资源好评率100%
Nginx是一款流行的开源反向代理服务器,它也支持WebSocket Secure (WSS),即HTTPS下的WebSocket协议。当需要通过Nginx将HTTP流量转换为WSS流量,以便加密WebSocket通信时,可以按照以下步骤配置:
1. 安装Nginx并启用SSL模块(如果还未安装)。
2. 配置SSL证书和密钥文件,通常放在`/etc/nginx/ssl/`目录下。
3. 在Nginx的配置文件(如`nginx.conf`或`.conf`文件夹内的server block)中,添加一个新的location块用于处理WebSocket请求。示例如下:
```nginx
server {
listen 80;
server_name yourdomain.com;
# SSL转HTTP映射
location / {
return 301 https://$host$request_uri;
}
# SSL监听端口(比如443)
listen 443 ssl http2;
ssl_certificate /path/to/your.crt; # 你的SSL证书路径
ssl_certificate_key /path/to/your.key; # 你的SSL私钥路径
# 设置WebSocket专用的location
location /wss/ {
proxy_pass http://localhost:your_websocket_port; # 指向你的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 X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
4. 确保WebSocket服务(可能是Django、Node.js或其他应用)监听的端口与Nginx配置中的`proxy_pass`指向的一致。
5. 保存配置并重启Nginx服务让更改生效。
阅读全文