nginx代理后端websocket
时间: 2025-01-07 09:09:29 浏览: 6
### 配置 Nginx 作为 WebSocket 后端服务的反向代理
为了使 Nginx 成功充当 WebSocket 应用程序的反向代理,需调整其配置文件以适应 HTTP 协议升级至 WebSocket 所必需的各项设置。具体来说,在 `location` 块内指定目标后端路径并启用必要的头部字段传递功能。
以下是详细的配置实例:
```nginx
server {
listen 80;
server_name yourdomain.com;
location /ws/ {
proxy_pass http://backend_ws_server/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_headr X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
```
此段代码展示了如何让 Nginx 处理来自 `/ws/` 路径下的请求,并将其转发给名为 `backend_ws_server` 的上游服务器群组[^1]。值得注意的是,这里启用了HTTP版本1.1以及设置了特定于WebSocket握手过程所需的两个重要头信息——`Upgrade` 和 `Connection`[^2]。
另外,还添加了一些额外的头部信息用于记录原始客户端的信息,这对于日志记录和调试非常有用[^3]。
对于希望简化配置的情况,可以省去部分非必要项,如下所示的一个更为简洁的例子也能够满足基本需求:
```nginx
server {
listen 8002;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:8805/;
}
}
```
这段配置同样实现了对本地监听在8805端口上的WebSocket服务的有效代理[^4]。
阅读全文