WebSocket代理与nginx

时间:2017-11-30 20:43:01

标签: nginx nginx-reverse-proxy

我对网络套接字代理的nginx文档感到困惑。

从此处的文档:https://nginx.org/en/docs/http/websocket.html

  

一个更复杂的例子,其中“连接”的值   对代理服务器的请求中的头字段取决于   客户端请求标头中存在“升级”字段:

http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    server {
        ...

        location /chat/ {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
    }

我想要类似的东西,如果预设了Upgrade标头,我想在连接中传递升级,否则我想做相当于proxy_set_header Connection ""

如果没有Upgrade标头,我认为文档中的示例正在执行proxy_set_header Connection close?如果是这样,我如何修改map来做我想要的。好像我需要proxy_set_header Connection ""作为

map $http_upgrade $connection_upgrade {
   default upgrade;
   ''      '';
}

但有些事情并不合适。

1 个答案:

答案 0 :(得分:0)

配置

map $http_upgrade $connection_upgrade {
   default upgrade;
   ''      '';
}

确实做了我想做的事。