Fornex
Европейский
хостинг

    Использование модуля GeoIP который позволяет перенаправлять или блокировать веб-трафик в соответствии с географическим положением.

    Репозиторий EPEL в RHEL и CentOS

    По умолчанию для Apache/2.4.6 mod_geoip недоступен в официальном репозитории RHEL / CentOS, поэтому нам нужно установить сторонний репозиторий EPEL.

    yum install epel-release  
    

    Mod_GeoIP в RHEL и CentOS

    После того, как в вашей системе включен репозиторий EPEL, вы можете просто установить mod_geoip, выполнив следующую команду с его пакетами зависимостей:

    yum install mod_geoip GeoIP GeoIP-devel GeoIP-data zlib-devel  
    

    Для загрузки последних Geo City и Country Database, выполните команды:

    cd /usr/share/GeoIP/  
    mv GeoIP.dat GeoIP.dat_org  
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz  
    wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz  
    gunzip GeoIP.dat.gz  
    gunzip GeoLiteCity.dat.gz  
    

    Включите Mod_GeoIP в Apache

    После того, как модуль установлен, откройте и отредактируйте основной файл конфигурации модуля текстовым редактором и активируйте модуль:

    nano /etc/httpd/conf.d/geoip.conf  
    

    Установите строку GeoIPEnable с Off в положение On. Так же убедитесь, что вы добавили абсолютный путь к файлу базы данных GeoIP.

    <IfModule mod_geoip.c>  
    GeoIPEnable On  
    GeoIPDBFile /usr/share/GeoIP/GeoIP.dat  
    </IfModule>  
    

    file

    Перезапустите службу Apache.

    systemctl restart httpd  
    

    Перенаправление пользователей на основе страны

    В описанном примере код перенаправит пользователей на основе страны, который мы установили как AS (Азия).

    Таким образом, вы можете перенаправить всех пользователей на основе их кода страны.

    GeoIPEnable On  
    GeoIPDBFile /usr/share/GeoIP/GeoIP.dat  
    # Redirect one country
    RewriteEngine on  
    RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AS$  
    RewriteRule ^(.*)$ https://www.testing.ru$1 [R,L]  
    

    Блокировка пользователей на основе страны

    Данный пример заблокирует пользователей на основе кода страны, который устанавливает GeoIP.
    Пример блокировки пользователей из стран AS (Азия) и USA (США).

    GeoIPEnable On  
    GeoIPDBFile /usr/share/GeoIP/GeoIP.dat  
    SetEnvIf GEOIP_COUNTRY_CODE AS BlockCountry  
    SetEnvIf GEOIP_COUNTRY_CODE US BlockCountry  
    # ... place more countries here
    Deny from env=BlockCountry  
    

    Разрешение доступа пользователей на основе страны

    Данный пример позволит пользователям иметь доступ только из ниже перечисленных стран.

    GeoIPEnable On  
    GeoIPDBFile /usr/share/GeoIP/GeoIP.dat  
    SetEnvIf GEOIP_COUNTRY_CODE AS AllowCountry  
    SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry  
    # ... place more countries here
    Deny from all  
    Allow from env=AllowCountry  
    

    Каждый запрос на сайт содержит специальный заголовок GeoIp-Country-Code, в котором содержится двухбуквенный код страны посетителя ISO 3166. Страна определяется исходя из IP адреса посетителя по данным MaxMind GeoLite.

    Например:

    • AF – Africa
    • AN – Antarctica
    • AS – Asia
    • EU – Europe
    • NA – North America
    • OC – Oceania
    • SA – South America
    • UA – Ukraine
    • CN – China
    • PL – Poland