Nginx配置WebSocket负载均衡
2018-03-16 20:11:24
1347次阅读
0个评论
在 server 配置块中添加如下配置中的 location /socket.io/ 配置块即可实现 WebSocket 在 80/443 端口握手。
用1.3以后版本的nginx,原生支持websocket
server {
listen 80;
listen 443 ssl;
server_name example.domain;
root "/project/path";
index index.html index.htm index.php;
location /socket.io/ {
# 此处改为 socket.io 后端的 ip 和端口即可
proxy_pass http://127.0.0.1:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
}
负载均衡
均衡算法要使用 ip_hash, 防止使用 long-polling 通信时请求分发到了不同的服务器导致异常。
server {
listen 80;
listen 443 ssl;
server_name example.domain;
root "/project/path";
index index.html index.htm index.php; // 配置负载的后端
upstream socket_nodes {
ip_hash;
server server1.app:8080 weight=5;
server server2.app:8080;
}
location /socket.io/ {
proxy_pass http://socket_nodes;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
// 其他配置项
// ...
}
00
相关话题
- Nginx根据URL实现负载均衡
- Nginx开启https负载均衡,配置Tomcat识别http和https协议
- Nginx负载均衡时获取用户真实IP
- nginx负载均衡,某台tomcat宕机后集群响应缓慢
- Nginx配置http和https共存
- Nginx端口转发端口配置
- websocket自动断开连接
- Nginx配置Symantec 免费版 SSL证书
- Spring WebSocket在 Config 中访问 Cookie
- Nginx根据User Agent动态配置root目录适配移动端
- nginx禁止访问文件或目录的配置方法及location指令的uri匹配规则
- nginx 多组件安装及secure_link配置与文件下载防盗链的使用
- Nginx支持字体文件
- firewalld封禁IP配置
- Linux配置静态IP