来自上游的标头的nginx映射变为默认

我想基于要从上游获取的标头使用条件标头。 由于某种原因,它总是会转换为默认值。

配置: 上游服务决定是否应该存在称为x-no-iframe-protection的标头。

主要的nginx:

$ curl -v myhost
...
< x-no-iframe-protection: yes
< x-frame-options: SAMEORIGIN
...

无论我尝试什么,我都会得到两个标头:

{{1}}

请澄清一下-我使用x-no-iframe-protection作为在特定情况下删除x-frame-option的技巧。我可以保留它(尽管nginx解析后不需要它)

无论如何-我如何才能捕获它以便替换标头值?

zhuangwei519 回答:来自上游的标头的nginx映射变为默认

HTTP事务包含请求标头和响应标头。在问题的上下文中,您正在基于另一个 response 标头(从上游接收)的值设置响应标头的值。

Nginx将请求标头存储在名称以$http_开头的变量中,并将响应标头存储在名称以$sent_开头的变量中。

此外,从上游收到的响应标头也可能存储在名称以$upstream_http_开头的变量中。

在您的配置中,使用变量$http_x_no_iframe_protection,而应使用$sent_x_no_iframe_protection$upstream_http_x_no_iframe_protection

所有Nginx变量均为documented here

,

尝试使用$upstream_x_no_iframe_protection访问上游响应标头。

本文链接:https://www.f2er.com/3114282.html

大家都在问