0

我对用于 Web 套接字代理的 nginx 文档感到困惑。

从这里的文档:https ://nginx.org/en/docs/http/websocket.html

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

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;
        }
    }

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

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

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

但感觉有些不对劲。

4

1 回答 1

0

配置

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

确实做我想要的。

于 2017-12-01T09:30:26.180 回答