我正在尝试使用 nginxshttp2_push_preload on;
指令推送重定向。
在我的应用程序中,我检测重定向并添加与标Link: <location>; as=document; rel=preload
头匹配的标头Location
。
这对于某些重定向很有效,但对于结果页面依赖于 cookie 的值(例如包含会话标识符的 cookie)的重定向则失败。
在调试时,我注意到“预加载”请求缺少原始请求中可用的 cookie。
事实上,“预加载”请求(Accept-*
和User-Agent
)中只发送了原始标头的子集,而像Cookie
和这样的标头则Referer
缺失。
如何让 nginx 将原始请求的所有标头转发到预加载请求?或者这不可能吗?
答案1
事实证明,这目前是不可能的,而且很可能永远不会实现。
我在 nginx 的问题跟踪器中发现了类似的关于转发Authorization
标头的请求https://trac.nginx.org/nginx/ticket/1817,并以一项决议结束WONTFIX
。
另一张票提到Vary
标题被关闭,因为DUPLICATE
https://trac.nginx.org/nginx/ticket/1851
我创建了另一张票据,请求添加标题Cookie
,只是为了确保https://trac.nginx.org/nginx/ticket/1935