IP адреса при использовании NGINX в Cpanel с Apache 2.4

IP адреса при использовании NGINX в Cpanel с Apache 2.4

17 ноября 2016
Месяц назад мы запустили сервер с панелью Cpanel в новой для нас конфигурации: взамен Apache 2.2 была установлена 2.4 версия. Спустя некоторое время после запуска, к нам обратился клиент с проблемой некорректных IP адресов в журналах посещений.

Проблема возникла по той причине, что мы на всех серверах для повышения скорости работы сайтов используем NGINX, который проксирует запросы к Apache. Для корректной передачи IP адресов использовался штатный модуль mod_remoteip, в массив $_SERVER передавались корректные IP адреса, а в журналы веб сервера писался IP сервера.

Проблема решается путем редактирования шаблона файла конфигурации веб сервера.
Для этого необходимо скопировать файл /var/cpanel/templates/apache2_4/ea4_main.default в /var/cpanel/templates/apache2_4/ea4_main.local

Дальше необходимо найти блок


и заменить его на


В этом блоке мы заменили все переменные %h на %a. Если обратиться к документации https://httpd.apache.org/docs/current/mod/mod_log_config.html, то в %h находится адрес с которого пришел запрос, а в %a находится корректный IP адрес.

Данная инструкция применима только при использовании EasyApache 4 (в EasyApahe 3 проблема также имеется и решается значительно сложнее, так как не все значения LogFormat вынесены шаблоны).

После внесения изменений необходимо пересоздать файлы конфигурации с помощью команды /scripts/rebuildhttpdconf и перезагрузить Apache.