Іноді замість реальної IP-адреси клієнта ви можете побачити 127.0.0.1 або якусь іншу неправильну IP-адресу клієнта у вашій панелі адміністратора Magento 2. Це може бути пов'язано з проксі-серверами, такими як Varnish, Cloudflare, Sucuri.net, , які можуть бути ввімкнені для вашого магазину Magento 2.
У цьому посібнику ми розглянемо, як вирішити цю проблему.
Примітка: Якщо ви використовуєте Модуль бази даних Magento 2 Geo IP від Magefan версії >2.3.5 і все ще стикаєтеся з проблемою неправильної IP-адреси, зв'яжіться з нами для подальшого розслідування.
Щоб вирішити проблему з неправильною IP-адресою, вам потрібно:
1. Створіть новий файл у каталозі Magento 2 :
app/etc/XIP/di.xml
2. Вставте код:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\HTTP\PhpEnvironment\RemoteAddress">
<arguments>
<argument name="alternativeHeaders" xsi:type="array">
<item name="x-cf-connecting-ip" xsi:type="string">HTTP_CF_CONNECTING_IP</item>
<item name="x-client-ip" xsi:type="string">HTTP_X_REAL_IP</item>
</argument>
</arguments>
</type>
</config>
3. Збережіть файл та запустіть компіляцію з ін'єкцією залежностей за допомогою команди CLI:
php bin/magento setup:di:compile
4. Якщо це не допоможе, видаліть раніше доданий код з файлу та додайте наступне:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Framework\HTTP\PhpEnvironment\RemoteAddress">
<arguments>
<argument name="alternativeHeaders" xsi:type="array">
<item name="x-cf-mfcustom-ip" xsi:type="string">SOME_CUSTOM_SERVER_KEY</item>
</argument>
</arguments>
</type>
</config>
Вам потрібно використовувати правильне значення замість " SOME_CUSTOM_SERVER_KEY ". Щоб отримати його, створіть файл test.php у вашій папці Magento з наступним кодом:
<?php
echo '<pre>';
var_dump($_SERVER);
та виконайте цей скрипт у браузері (URL: https://mydomain.com/test.php ). Мета полягає у визначенні правильного ключа, який зберігає IP-адресу клієнта у вашому конкретному випадку.