根据NGINX 文档
proxy_set_header field value
允许重新定义或附加字段到传递给代理服务器的请求标头。价值可以包含文本,变量,以及它们的组合。
所以我可以做
set $my_variable "some_value";
proxy_set_header x-my-header $my_variable;
是否可以使用变量来field
参数,即有标题姓名基于变量?我希望能够配置 NGINX 如下
set $my_variable "x-my-header";
proxy_set_header $my_variable "some_value";
答案1
当 nginx 文档没有明确说明您可以将变量用于某些指令参数时,通常意味着您不能这样做。特别是您不能将变量用作 和一些其他相关指令中的标头名称add_header
。proxy_set_header
但是,您可以使用第三方模块来实现,例如lua-nginx-module
通过ngx.req.set_header
。您可以查看OpenResty包含上述模块的软件包正在包装适用于多种操作系统发行版。