nginx 支持websocket

nginx 反向代理websocket 

nginx配置

请求地址及路径:ws://x.x.x.x/web/springws/websocket.ws

解析 map 指令

上面 nginx.conf 配置中的 map $http_upgrade $connection_upgrade 的作用,参考 http://www.ttlsa.com/nginx/using-nginx-map-method/

该作用主要是根据客户端请求中 $http_upgrade 的值,来构造改变 $connection_upgrade 的值,即根据变量 $http_upgrade 的值创建新的变量 $connection_upgrade,创建的规则就是 {} 里面的东西,请见配置:

http{

    # websocket
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
}
# websocket
upstream websocket {
    server xxx.xxx.xxx.xxx:8082;
    server xxx.xxx.xxx.xxx:8082;
}
server {

    # websocket
    location ^~ /web/springws/ {
    proxy_pass http://websocket;
    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_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    }
}
原文地址:https://www.cnblogs.com/yxy-linux/p/8330488.html