tm

   Итак, NGINX в качестве прокси для Apache. Необходимо обеспечить передачу HTTP заголовков на Apache с реальными IP адресами. Обеспечить это мне удалось сделать только на NGINX v.1.10.3, Apache v.2.4.7 и модулем для Apache2 remote_ip. C модулем rpaf это сделать не удалось, увы.

Начнём с конфиги NGINX. В секции server помимо всего прочего прописываем параметры проксирования, например:

proxy_pass http://192.168.1.8:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Далее настраиваем Apache2. Включаем модуль remote_ip.

   Задача привести логи к адекватному виду. В этом примере пишем в отдельный файл лога всех ботов. В другом оставляем всё остальное. Версия NGINX 1.10.3.

В первую очередь создаём map в которой перечисляем всех ботов которых будем писать в отдельный файл. Переменные map пишутся в контексте блока html.

Редактируем конфигурационный файл nginx.conf:

nano /путь/до/nginx.conf
map $http_user_agent $bot {
default                 0;
~*(Googlebot|YandexBot|YandexMetrika) 1;
~*(Slurp) 1;
}

т. е.

$http_user_agent - критерий по которому будем сортировать логи (User Agent);

$bot - произвольная переменная;

~* - не учитываем регистр;