Верх страницы
Обложка к записи REMOTE_ADDR выдаёт IP адрес сервера
Время для прочтения: 0 мин. 3 сек.

REMOTE_ADDR выдаёт IP адрес сервера

На моём VPS сервере с Debian в связке Apache + nginx при попытке определения IP адреса пользователя из PHP при помощи переменной $_SERVER['REMOTE_ADDR'], я получаю IP адрес самого сервера, на котором запущен PHP.

Это происходит потому, что nginx выступает в роли прокси-сервера между клиентом и Apache, из-за чего последний видит только IP адрес сервера.

Чтобы пофиксить этот баг, достаточно подключить в конфиге Apache (/etc/apache2/apache2.conf) модуль mod_rpaf и внести пару строк настроек:


LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
<ifmodule mod_rpaf.c>
  RPAFenable On
  RPAFsethostname On
  RPAFproxy_ips 127.0.0.1 ТУТ_ВАШ_IP_АДРЕС
	RPAFheader X-Forwarded-For
</ifmodule>

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, Opencart, DLE, Laravel, Moonshine, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы