frame

Sveiki apsilankę!

Jei forume lankaisi pirmą kartą, kviečiame registruotis ir prisijungti prie diskusijų.

Prisijungti Registruotis

mod_geoip2 įdiegimas CentOS 6 aplinkoje

IV_RomanLIV_RomanL Interneto vizija
edited spalio 15 Į Web serveriai
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]
<?php
print_r($_SERVER);
?>[/PHP]Apsilankius adresu [URL="http://jūsų_IP/geo.php&quot;]http://jūsų_IP/geo.php[/URL] turėtumėte išvysti panašų vaizdą:

[PHP][...]
[GEOIP_CONTINENT_CODE] => EU
[GEOIP_COUNTRY_CODE] => LT
[GEOIP_COUNTRY_NAME] => Lithuania
[...][/PHP]mod_geopip modulio funcionalumą galite ištestuoti sukurdami .htaccess failą. Keletas pavyzdžių:

Nukreipiame lankytoją kuris atkeliauja iš Lietuvos į lietuvišką tinklalapio versiją:

[PHP]RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^LT$
RewriteRule ^(.*)$ http://www.jūsų_tinklapio_pavadinimas.lt$1 [R,L][/PHP]Nukreipiame lankytojus iš keletos skirtingų šalių į tą patį tinklalapį:

[PHP]RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(LT|US|DE)$
RewriteRule ^(.*)$ http://www.jūsų_tinklapio_pavadinimas.com$1 [R,L][/PHP]Blokuokime prieigą prie tinklalapio lankytojams iš tam tikrų šalių:

[PHP]SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# ... galite pridėti tiek šalių kiek pageidaujate

Deny from env=BlockCountry[/PHP]Suteikime prieigą prie tinklalapio lankytojams tik iš nustatytų šalių:

[PHP]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[/PHP]
Pažymėtos temos:
Norėdami palikti komentarą, turite prisijungti arba registruokis.