nginx WebSocket支持配置

server {
    listen 80;
    server_name your-domain.com;
    
    # MinIO Console代理配置
    location / {
        proxy_pass http://minio-cluster:9001;  # MinIO Console端口
        
        # WebSocket支持配置
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        
        # 必要的代理头信息
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 超时设置
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
        
        # 缓冲区设置
        proxy_buffering off;
        proxy_request_buffering off;
    }
    
    # MinIO API代理配置(如果需要)
    location /api/ {
        proxy_pass http://minio-cluster:9000;
        
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}

 

3. 关键配置说明
nginx
# 这三个头信息对WebSocket至关重要
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 确保Host头正确传递
proxy_set_header Host $http_host;

# 禁用缓冲,避免WebSocket数据被缓存
proxy_buffering off;

 “HTTP 短,WebSocket 长;Upgrade 头别忘,超时调长,负载均衡用 IP 绑。”“IP 绑”= IP Hash(源地址哈希) 这一种调度算法。
做法很简单:
nginx 里把 ip_hash; 写进 upstream,调度器就把 客户端 IP 取哈希 → 固定映射到某一台后端。

posted @ 2025-11-13 11:28  滴滴滴  阅读(18)  评论(0)    收藏  举报