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
// ...
}
это возможно? Спасибо заранее.
3 ответов
$http_name_of_the_header_key
i.e если у вас есть origin = domain.com
в заголовке, вы можете использовать $http_origin
для "domain.com"
в nginx поддерживает произвольное поле заголовка запроса. В приведенном выше примере последняя часть имени переменной-это имя поля, преобразованное в нижний регистр с тире, замененным подчеркиванием
ссылка doc здесь: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_
для вашего примера переменная будет $http_my_custom_header
.
я столкнулся с той же проблемой. Я попробовал оба $http_my_custom_header
и $sent_http_my_custom_header
но это не работает для меня.
хотя решил эту проблему с помощью $upstream_http_my_custom_header
.
используйте $http_MY_CUSTOM_HEADER
вы можете написать что-то вроде
set my_header $http_MY_CUSTOM_HEADER;
if($my_header != 'some-value') {
#do some thing;
}