mod_geoip2 kartu su web serveriu apache sukuria galimybę kontroliuoti tinklalapio lankytojų srautą pagal lankytojų geografinius duomenis. Tai pravartu kuomet turite tinklalapį kuriame:
- keletas skirtingų kalbų
- nepageidaujate vienokios ar kitokios šalies lankytojų
- pageidaujate realizuoti lankytojų srauto paskirstymo mechanizmą
- naudojate reklamos valdymo sprendimus (pvz.: OpenAds)
0. Patogiam tekstinių failų redagavimui naudojamas "
nano" redaktorius. Jį galite įdiegti įvykdę komandą:
yum install nano -y
1. Prieš įdiegiant šį modulį, įsitikinkite jog jūsų turimas dedikuotas serveris jau paruoštas tinklalapių talpinimui (
pamoka 1 |
pamoka 2). Įdiegiame Epel repozitoriją:
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Įdiegiame yum-priorities paketą:
yum install yum-priorities -y
Redaguojame repozitorijos failą:
nano /etc/yum.repos.d/epel.repo
Ties grafa [epel] pridėkite eilutę priority=10 , pavyzdys:
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
[..]
2. Įdiegiame ir konfiguruojame mod_geoip:
yum install mod_geoip -y
Parsisiunčiame geolokacijos duomenų bazę (pravartu periodiškai šią duomenų bazę parsisiūsti iš naujo, tam jog turėtumėte naujausius duomenis):
cd /usr/share/GeoIP/
mv GeoIP.dat GeoIP.dat_orig
wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
Perkrauname apache serverį:
service httpd restart
3. Atlikime testą tam jog įsitikintume, jog modulis veikia korektiškai. Sukuriame testinį failą:
nano /var/www/html/geo.php
Įrašome:
<?php
print_r($_SERVER);
?>
Apsilankius adresu http://jūsų_IP/geo.php
turėtumėte išvysti panašų vaizdą:
[...]
[GEOIP_CONTINENT_CODE] => EU
[GEOIP_COUNTRY_CODE] => LT
[GEOIP_COUNTRY_NAME] => Lithuania
[...]
mod_geopip modulio funcionalumą galite ištestuoti sukurdami .htaccess failą. Keletas pavyzdžių:
Nukreipiame lankytoją kuris atkeliauja iš Lietuvos į lietuvišką tinklalapio versiją:
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LT$
RewriteRule ^(.*)$ http://www.jūsų_tinklapio_pavadinimas.lt$1
[R,L]
Nukreipiame lankytojus iš keletos skirtingų šalių į tą patį tinklalapį:
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(LT|US|DE)$
RewriteRule ^(.*)$
http://www.jūsų_tinklapio_pavadinimas.com$1
[R,L]
Blokuokime prieigą prie tinklalapio lankytojams iš tam tikrų šalių:
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# ... galite pridėti tiek šalių kiek pageidaujate
Deny from env=BlockCountry
Suteikime prieigą prie tinklalapio lankytojams tik iš nustatytų šalių:
SetEnvIf GEOIP_COUNTRY_CODE LT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE NO AllowCountry
# ... galite pridėti tiek šalių kiek pageidaujate
Deny from all
Allow from env=AllowCountry