Update:在尝试了一百万次之后,我有了一个适用于多个 cookie 的解决方案,我想听听您的意见。
在 Debian 10 上我安装了apt-get install libnginx-mod-http-lua
我认为这不是完整的 OpenResty lua-nginx-module,不是吗?
map $upstream_bytes_received $hide_cookie {
default '';
'' Set-Cookie;
}
内部位置:
header_filter_by_lua_block {
ngx.header[ngx.var.hide_cookie] = nil;
}
它有效,我会做更多测试......
之前的回答,对于 1 个 cookie,没有 Lua:
我一直在为此寻找解决方案,但目前它适用于ONLY ONE cookie.
首先我遇到了以下问题:$proxy_hide_header
不接受变量,并且不能在内部使用if()
.
我终于找到了一个包含可行解决方案的答案:使用标头过滤代理响应标头 https://stackoverflow.com/questions/53754229/using-a-header-to-filter-proxied-response-headers.
这是我现在的代码,我将对其进行更多测试,因为这是一个微妙的问题:
map $upstream_bytes_received $cookies {
default $upstream_http_set_cookie;
'' '';
}
然后是内部位置:
proxy_hide_header Set-Cookie;
add_header Set-Cookie $cookies;
也许我会默认:没有cookie,如果失败的话会很明显,并且在隐私方面问题较少。
但我认为这个解决方案无法针对多个 cookie 进行改进,我必须寻找其他地方,如果我可以强制使用变量$proxy_hide_header
将是最终的解决方案。