在nginx配置上加上支持websocket
时间: 2024-10-08 09:09:56 浏览: 33
在Nginx配置中添加WebSocket支持通常涉及到启用第三方模块如ngx_http_upstream_ip_hash_module(用于负载均衡)和 ngx_http_websocket_module(处理WebSocket连接)。以下是基本步骤:
1. 安装必要的模块:
- 对于官方版本的Nginx,需要安装`ngx_http_upstream_ip_hash_module`和`ngx_http_websocket_module`。你可以通过`apt-get`或`yum`命令在Debian或RHEL系统中安装它们。
2. 配置文件(通常是`nginx.conf`或`.conf`文件)修改:
```nginx
http {
# 添加WebSocket模块加载
upstream websocket_upstream {
server your-backend-server1;
server your-backend-server2;
# 可以添加更多服务器
}
# 设置WebSocket监听端口(例如8080)
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80; # 或者443如果需要SSL
location /ws {
# 使用upstream分配请求到后端服务器
proxy_pass websocket_upstream;
proxy_http_version 1.1;
# 允许WebSocket升级
upgrade $connection_upgrade;
proxy_set_header Upgrade $connection_upgrade;
proxy_set_header Connection "upgrade";
# 如果使用HTTPS,添加下面这行
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
```
3. 重启Nginx服务使其应用新配置:
```
sudo service nginx restart
```
阅读全文