Nginx配置WebSocket负载均衡
2018-03-16 20:11:24
1507 次阅读
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;
    }
    // 其他配置项
    // ...
}相关话题
- 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