Окружение: cpanel 58+nginx+apache 2.4+EA4

Суть — в domlogs apache не отображается корректный ip посетителя.

С учетом правильных конфигов в

/etc/apache2/conf.modules.d/360_mod_remoteip.conf

И наличия соответствующего модуля:

#rpm -qa |grep -i remote
ea-apache24-mod_remoteip-2.4.25-4.el7.cloudlinux.x86_64

все сводится к тому, что по факту не настроен корректный log_format у апача, а все потому, что log_format невозможно изменить в

/etc/apache2/conf/httpd.conf

Даже с учетом последующей дистиляции конфига:

/usr/local/cpanel/bin/apache_conf_distiller --update

Ребилд из панели затирает все внесенные изменения:

/scripts/rebuildhttpdconf

 

Это связано с логикой работы апача и модулей анализаторов логов апача. Где-то в багтрекере cpanel есть на это issue, при желании можно найти.

 

А я пока укажу на красивое и правильное решение проблемы.

Берем файлик:

/var/cpanel/templates/apache2_4/ea4_main.default

и копируем его в

/var/cpanel/templates/apache2_4/ea4_main.local

Далее в новом файле, находим все директивы LogFormat

Их базовый вид примерно такой:

LogFormat "%h %l %u %t \"%r\" %>s %b" common

Нам надо добавить поле %a, которое соответствует прокинутому realip из nginx-а, у меня например это так стало:

LogFormat "%h %a %l %u %t \"%r\" %>s %b" common

Ну и везде меняем таким же образом.

В целом можно %h полностью заменить на %a, это уже смотрите по потребностям.

После этого выполняем:

/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd

И все должно заработать.