Подтвердить что ты не робот

Nginx - читать пользовательский заголовок с восходящего сервера

Я использую nginx в качестве обратного прокси-сервера и пытаюсь прочитать нестандартный заголовок из ответа восходящего сервера (Apache) без успеха. Ответ Apache следующий:

HTTP/1.0 200 OK
Date: Fri, 14 Sep 2012 20:18:29 GMT 
Server: Apache/2.2.17 (Ubuntu)
X-Powered-By: PHP/5.3.5-1ubuntu7.10
Connection: close
Content-Type: application/json; charset=UTF-8
My-custom-header: 1

Я хочу прочитать значение из My-custom-header и использовать его в предложении if:

location / {
    // ...
    // get My-custom-header value here
    // ...
}

Возможно ли это? Заранее спасибо.

4b9b3361

Ответ 1

$HTTP _name_of_the_header

В nginx поддерживается произвольное поле заголовка запроса. В приведенном выше примере последняя часть имени переменной - это имя поля, преобразованное в нижний регистр с заменой тире на символы подчеркивания

Справочный документ здесь: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_

Для вашего примера переменная будет $http_my_custom_header.

Ответ 2

Я столкнулся с той же проблемой. Я пробовал как $http_my_custom_header, так и $sent_http_my_custom_header, но для меня это не сработало.

Хотя эта проблема решена с помощью $upstream_http_my_custom_header.

Ответ 3

Используйте $http_MY_CUSTOM_HEADER

Вы можете написать что-то вроде

set my_header $http_MY_CUSTOM_HEADER;
if($my_header != 'some-value') {
#do some thing;
}