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>