Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Зарегистрируйте HTTP-заголовок в журналах доступа Apache2

Автор вопроса: AlfoОтветов: 1

У меня есть веб-сайт, работающий за Cloudflare, который является обратным прокси. Это означает, что я всегда получаю только один или два IP-адреса в своих журналах доступа.

Тем не менее, Cloudflare предоставляет IP-адрес посетителя в заголовках запросов, которые, как я предполагаю, я могу зарегистрировать вместо стандартного в журнале доступа.

Я знаю, как использовать CustomLog, но есть ли способ сохранить заголовок HTTP в журнале доступа Apache?

Спасибо.

logginghttp-headersapache

Ответы

Ответ 1 · рейтинг 19 · Dirk-Willem van Gulik

Да, взгляните на документы - http://httpd.apache.org/docs/2.2/mod/mod_log_config.html в частности запись для

%{Foobar}i

Что принесет вам:

Содержимое Foobar: строки заголовка в запросе, отправленном на сервер. На это влияют изменения, сделанные другими модулями (например, mod_headers). Если вас интересует, каким был заголовок запроса до того, как большинство модулей изменило бы его, используйте mod_setenvif, чтобы скопировать заголовок во внутреннюю переменную среды и записать это значение с помощью %{VARNAME}e, описанного выше.

Таким образом, обычно добавляют какую-либо запись, например "... %{X-Forwarded-For-IP}i, в запись CustomLog.

Замените "X-Forwarded-For-IP" на то, что вам предоставляет служба cloudflare (обычно это что-то вроде "CF-Connecting-IP"); например

 LogFormat "%v %{CF-Connecting-IP}i (via cloudflare:%h) %l %u %t \"%r\" %>s %b" cloudflare
 CustomLog "|rotatelog.. etc" cloudflare

Что касается "журнала передачи" - см. примечание рядом с директивой TransferLog - что он выбирает самую последнюю определенную версию.

Dw.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы