Неправильное определение IP-адреса VestaCP
Это происходит потому, что переменная $_SERVER['REMOTE_ADDR'] содержит не IP адрес клиента, а адрес сервера.
Я столкнулся с проблемой, когда при заходе в админ панель DLE, получил ошибку - Ваш аккаунт на сайте заблокирован.
VestaCP отдает неправильный IP адрес в логах веб сервера. Данная проблема часто встречается при использовании сервиса Cloudflare.
Исправляем IP сервера на IP клиента
Решений данной проблемы с apache2 есть несколько, мы опишем самый простой и доступный.
1. Активируем модуль remoteip
a2enmod remoteip
2. Отредактируем конфигурационный файл. Если его нет добавляем.
nano /etc/apache2/conf.d/remoteip.conf
3. в файле remoteip.conf прописываем:
RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
RemoteIPInternalProxy ip-вашего-сервера
Либо не добавляя файла, выполним из командной строки:
echo -e "<IfModule remoteip_module> \n RemoteIPHeader X-Real-IP \n</IfModule>" > /etc/apache2/mods-enabled/remoteip.conf
4. Теперь рестарт веб сервера apache2
service apache2 restart
Для Ubuntu 18.x можно так.
systemctl restart apache2
Теперь нужно проверить значение переменной $_SERVER[‘REMOTE_ADDR’] которую выдает наш веб сервер после модификации.
Самый простой способ проверки это создание файла "info.php" с содержимым:
<?php phpinfo() ?>
Разместите данный файл в корневой директории вашего веб сайта, и зайдите браузером.
https://ваш.сайт/info.php
Найти там значение REMOTE_ADDR. Там должен отображаться ваш IP адрес, а ниже IP адрес сервера.