Использование X-Forwarded-For на сервере с WordPress
Содержание
Настраиваем использование заголовка X-Forwarded-For в веб-сервере Apache и CMS WordPress.
Apache
В /etc/httpd/conf/httpd.conf добавляем формат логирования:
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
Выключаем стандартное логирование:
# CustomLog "logs/access_log" combined
Добавляем своё правило:
# Combined and proxy logging
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog "logs/access_log" combined env=!forwarded
CustomLog "logs/access_log" proxy env=forwarded
Перезапускаем Apache:
systemctl restart httpd.service
WordPress
В /etc/wordpress/wp-config.php добавляем:
/** Use X-Forwarded-For */
if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
}
Перезапускаем Apache:
systemctl restart httpd.service