在现代Web开发中,WebSocket 技术因其低延迟和实时通信能力而备受青睐,而 SignalR 是 .NET 生态系统中实现这一功能的强大工具。然而,当涉及生产环境部署时,Nginx 的正确配置显得尤为重要。以下是如何让 Nginx 支持 SignalR WebSocket 的简明指南!
首先,确保你的 Nginx 版本支持 WebSocket。运行 `nginx -v` 检查版本号,建议使用 1.9.5 或更高版本。接着,在 Nginx 配置文件中添加如下
```nginx
http {
map $http_upgrade $connection_upgrade {
default upgrade;
''close;
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:5000; 替换为你的后端地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
```
🚀 关键点解析:
- `proxy_http_version 1.1`:启用 HTTP/1.1 协议,支持 WebSocket。
- `Upgrade` 和 `Connection` 头部:告诉 Nginx 转发 WebSocket 请求。
- `proxy_cache_bypass`:确保缓存不会干扰 WebSocket 流量。
完成配置后,记得重启 Nginx (`sudo systemctl restart nginx`) 并测试连接是否正常。此时,SignalR 的实时通信将通过 WebSocket 在 Nginx 上流畅运行!
💡 提示:如果需要 HTTPS,请额外配置 SSL/TLS,并确保 `wss://` 被正确处理。
👏 部署成功后,你将拥有一个高效、稳定的实时通信服务! 🚀