Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NGINX log_format $http_, Вывод всех возможных заголовков 
V
    Опции темы
EgoBrain
Дата 20.8.2016, 05:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Module ngx_http_core_module Embedded Variables The ngx_http_core_module module supports embedded variables with names matching the Apache Server variables. First of all, these are variables representing client request header fields, such as $http_user_agent, $http_cookie, and so on. Also there are other variables.

Меня интересуют переменные с префиксом $http_ , так как стоит задача мониторинга всех полученных от клиента http заголовков.
Но естественно заранее не известно какие именно заголовки придут в запросе, а зафиксировать хочется все. Можно как-нибудь настроить формат лога, чтобы nginx записал все пришедшие заголовки?

З.Ы.: веб-приложение выполняемое сервером написано на php, но у меня связка NGINX + php-fpm, которому не передаются заголовки на сколько я понял доку по функции getallheaders, поэтому пришел к такому подходу в решении задачи (логировать заголовки самим nginx-ом).
PM MAIL ICQ Skype   Вверх
ksnk
Дата 20.8.2016, 06:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 5
Всего: 386



В смысле? Под nginx заголовки вполне себе передаются, просто функция apache_request_header отсутствует. В примерах на php.net встречается подобная функция
Код

function headers(){
        static $headers=array();
        if (empty($headers)) {
            if (is_callable('apache_request_headers')) {
                $headers = apache_request_headers();
            } else {
                $headers=array();
                foreach($_SERVER as $key=>$value) {
                    if (substr($key,0,5)=="HTTP_") {
                        $key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5)))));
                        $headers[$key]=$value;
                    }else{
                        $headers[$key]=$value;
                    }
                }
            }
        }
        return $headers;
    }

Это не оно?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
EgoBrain
Дата 20.8.2016, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Цитата(ksnk @ 20.8.2016,  06:05)

Это не оно?

Ха! Да, это оно. Простите за невежество, нехватка знаний теории. Суперглобальная переменная $_SERVER действительно хранит данные полученных заголовков.
Тогда непонятна свистопляска с фукнцией getallheaders...

Вопрос решен, логировать заголовки сервером отпала необходимость.

Это сообщение отредактировал(а) EgoBrain - 20.8.2016, 14:49
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.1090 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.