ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Не передаётся значение дополнительного заголовка в fastcgi



Hello!

On Tue, Feb 25, 2014 at 12:39:53AM +0400, Александр Кунич wrote:

> Система debian squeeze
> nginx 1.4.5 из репозиториев дебиан
> 
> Клиент передаёт серверу в заголовках запроса дополнительный параметр
> API_KEY. Необходимо передать его в  $_SERVER['HTTP_API_KEY']
> Прописал в fastcgi_params следующее
> 
> fastcgi_param    HTTP_API_KEY        $http_api_key;
> 
> $_SERVER['HTTP_API_KEY'] при этом появляется, но пустой, хотя в заголовке
> запроса этот параметр не пуст.
> Но вот что интересно. Если заменить имя заголовка с API_KEY на API-KEY, то
> всё работает как надо.
> Это ошибка или так специально для чего-то задумано? Просто переименовать
> этот параметр сейчас уже затруднительно, т.к. приложением многие уже
> пользуются.

Так задумано.   Заголовки API_KEY и API-KEY разные, но в рамках 
принятой в CGI логики (а равно переменных в конфигах nginx'а) 
представления заголовков неотличимы друг от друга, т.к. "-" и "_" 
становятся "_".  Поэтому nginx по умолчанию заголовки с символом 
подчёркивания считает некорректными и игнорирует.

Если очень надо, такие заголовки можно разрешить с помощью 
директивы underscores_in_headers.  Но следует понимать, что это 
может вылезти боком в других местах.  Подробнее тут:

http://nginx.org/r/underscores_in_headers/ru

И да, явно указывать "fastcgi_param HTTP_API_KEY" - не нужно, все 
заголовки запроса по умолчанию передаются в fastcgi как HTTP_* 
параметры.  Ваша проблема именно в том, что заголовок содержит 
подчёркивание и из-за этого игнорируется.

-- 
Maxim Dounin
http://nginx.org/

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.