nginx - читать пользовательский заголовок, установленный на клиенте - PullRequest
0 голосов
/ 25 июня 2018

Я использую nginx в качестве обратного прокси. Я пытаюсь прочитать пользовательский заголовок, установленный на клиенте, чтобы я мог обновить переменную со значением этого заголовка.

Я установил заголовок в запросе XHR, аналогично xhr.setRequestHeader (‘X-My-Custom-Variable '," 1 "); xhr.setRequestHeader («X-My-Second-Custom-Variable», «some-value»);

Из документации видно, что я могу добиться этого на nginx с помощью:

if ($http_x_my_custom_variable = ‘1’) {
    set $variable $http_x_my_second_custom_variable;
}

Однако, когда я его запускаю, это не работает, переменная $ не установлена.

Я также пытался использовать ключевое слово карты nginx, например:

map $http_x_my_custom_variable $variable {
   default “”;
   “1” $http_x_my_second_custom_variable;
}

и до сих пор ничего не происходит.

Я также подтвердил, что оба заголовка установлены на то, что я ожидаю на бэкэнд-сервере Django.

Примечание : мои настоящие имена заголовков больше похожи на: X-ABM-ZHR-XAVIER. Я только заявляю, что это может быть связано со структурой имени заголовка. Хотя я также на всякий случай пробовал разные комбинации имен заголовков.

1 Ответ

0 голосов
/ 26 июня 2018

Попробуйте не использовать тире в имени переменной.

Со стороны клиента передайте XMyCustomVariable и на nginx прочитайте его с $ http_XMyCustomVariable (или строчными буквами).

Я знаю, что это не элегантно, но как первый шаг к отладке я бы подтвердил эту часть.

Также попробуйте использовать одно из известных имен переменных (снова для отладки), например, отправьте значение переменной 1 в заголовке пользовательского агента и проверьте nginx, используя $ http_user_agent

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...