Можно ли установить заголовок прокси в 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_header,proxy_set_headerи некоторые другие соответствующие директивы. Однако вы можете сделать это, используя сторонние модули, напримерlua-nginx-moduleс помощьюngx.req.set_header. Вы можете взглянуть на пакет OpenResty , который включает в себя вышеупомянутый модуль и упаковывается для широкого спектра дистрибутивов ОС.

Другие вопросы по тегам