Opterecenje servera - Geo Ip skripta - Koje je najbolje rjesenje?
Pozdrav,
treba mi rjesenje za skriptu koja ce provjeravati ip adrese korisnika i ukoliko se radi o odredjenoj zemlji inkludovace se odredjeni kod a ukoliko je bilo koja druga zemlja drugi kod... E sad radi se o blog-u koji ima veoma veliku posjecenost izmedju 15-20000 unikatnih posjeta dnevno... Mene interesuje koje rjesenje je najkvalitetnije po pitanju smanjenja opterecenosti servera i smanjenja bandwidth-a.. Ja sam razmisljao kako da se ovo odradi i nasao sam tri rjesenja... - ubaciti ip adrese u niz i da se za svakog korisnika provjeri njegov ip i na osnovu toga inkuduje odgovarajuci kod - provjera iz baze - provjera iz fajla E sad interesuje me ako je neko imao iskustva sa ovim .. prednosti i mane ovih rjesenja, konkretno provjera iz baze mi je problematicna jer vec sam blog i velik broj korisnika opterecuje bazu itd... Volio bih da cujem vasa iskustva oko ovoga da bih mogao da napravim najkvalitetnije rjesenje.. |
Proveris samo jednom, kada prvi put dodje na sajt, onda sacuvas neki setting u session i ne cackas bazu vise dok se ne izgubi taj session setting.
Tako neces opterecivati server jer za svakog korisnika citas samo jednom. Ne dobijas nikakvo ubrzanje ako to cuvas u file, slobodno citaj iz baze. Imas vec gotove baze, obicno i csv formatu, nisu male a moras redovno i da je azuriras. Ja recimo na taj nacin odredjujem koji jezik cu da serviram na sajtu. Ako je srbija, bosna, hrvatska, mk, si ... onda prikazem srpski jezik, u svim ostalim slucajevima engleski. Naravno, ako je ulogovan onda to citam iz njegovog profila (moguce je da je iz nemacke ali gleda sajt na srpskom). Mozes da cuvas cak i u cookie, ali i tu nemas neku veliku ustedu posto su cookies prilicno "promenljivi" pa u najcescem broju slucajeva i pored cookie moras ipak da ga proveris. |
Samo da se nadovezem na post iznad - testirao sam obe varijante, citanje iz fajla i citanje iz baze.. Citanje iz jedne jedine tabele je problematicno kod high traffic sajtova, posto moze da potraje i do 2 sekunde da pronadje podatak. Ubrzanje sam dobio podelom na vise tabela (ispod 0.5 sec), ali na kraju je najbolje ispao sistem koji cita binary format fajlova, i zasad radi odlicno..
|
Citat:
ajde malo pojasni kako to radis, ovaj podatak zvuci zanimljivo.. bio sam ubedjen da indexirana pretraga po tabeli mora da bude brza od sekvencijalne pretrage fajla (ili mozda nije sekvencijalna? ) Cije baze ip-jeva vi koristite za ovakve stvari ? |
Pogledaj na maxmind.com, imas dostupne binary fajlove za ip-country-city, kao i csv fajlove.. Upotrebio sam njihove skripte uz male izmene (trebalo je generisati 5 random cities u okviru iste US drzave iz koje je i posetilac).
Mislim da kod binary fajlova koristi specijalni algoritam, mada se nisam bas udubio u to Evo direktan link: http://www.maxmind.com/app/ip_locate pa sa desne strane Free/OpenSource kolona.. |
Zaboravi geoip, inkluduj fajl u zavisnosti od jezika na koji je podesen komp preko User-agent stringa. Ima ljudi koji su vrlo u pokretu, neko iz USA koji je u Pekingu poslovno nece zeleti kineski da vidi.
|
Citat:
|
Hmm, da, moguce da ne bi imao nikakve koristi od mog predloga, sorry.
|
pa da treba mi country..ne language..
a i ja sam napravio modifikaciju skirpte sa maxmind-a |
Citat:
|
ok..a da li postoji neki simulator odnosno neki nacin da testiram kada se radi preko baze, odnosno fajla??
|
Najbrze resenje je da koristis binary distribuciju baze od maxmind-a i da uglavis modul za apache. Radi nekoliko redova velicine brze od resenja sa bazom ili fajlom + update je mnogo laksi kada je binarna distribucija u pitanju.
Meni to radi na dva sajt akoji prangijaju nekoliko stotina hiljada hitova dnevno bez ikakvih problema. |
^ jos da dodam:
http://pear.php.net/package/Net_GeoIP |
Vreme je GMT +2. Trenutno vreme je 21:38. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.