通过 proxy_set_header 将 URL 中的参数注入到反向代理

通过 proxy_set_header 将 URL 中的参数注入到反向代理

我正在使用以下块将 cookie 传递给远程服务器:

location /
{
    set $foo "bla=mla";
    set $bar "$arg_user=$arg_pass";

    proxy_pass http://remoteserver:8117/;
    proxy_connect_timeout 3600s;
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    proxy_redirect off;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_cache_bypass 1; 
    proxy_no_cache 1;
    proxy_hide_header Set-Cookie;
    proxy_ignore_headers Set-Cookie;
    proxy_set_header Cookie "$foo";
    proxy_set_header Connection "upgrade";
    proxy_set_header Origin http://$host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header X-uri "$foo";
}

这很好用。

但是,当我尝试使用 URL 中的参数构建 $foo 时,失败了。

示例 URL:

http://本地服务器/测试?用户=bla&pass=mla

配置变更:

proxy_set_header Cookie "$bar";

X-uri 测试标头对于 $foo 和 $bar 具有完全相同的值。

相关内容