是否可以使用 *header name* 变量来设置 NGINX 中的代理标头?

是否可以使用 *header name* 变量来设置 NGINX 中的代理标头?

根据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_headerproxy_set_header但是,您可以使用第三方模块来实现,例如lua-nginx-module通过ngx.req.set_header。您可以查看OpenResty包含上述模块的软件包正在包装适用于多种操作系统发行版。

相关内容