我正在使用以下块将 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 具有完全相同的值。