Elérhető mindig a honlapod? 99%-os rendelkezésre állási idő. Bérelt tárhelyen sokszor felmerül a kérdés, hogy a vállalt ~9X,X%-os rendelkezésre állás tényleg garantált-e. Nos vannak esetek mikor ez csak mese azzal a bizonyos habbal. Vannak olcsó tárhelyek, ahol gyakorlatilag fillérekért juthatunk ‘korlátlan’ erőforrás használathoz (MySQL, PHP, Domain.. tekintetében) (már maga a korlátlan szó is gáz). Viszont az esetek többségében a rengeteg prímán megírt és alul optimalizált tartalomkezelő rendszereknek köszönhetően, vagy egyszerűen a nagy látogatottság (* a sok Hostolt domannel) miatt a forgalom kiszolgálhatatlanná válik. Ilyenkor persze a honalapunk nem lesz elérhető, egyszerűen azért, mert a szerver gép nem győzi a kérések kiszolgálását.
Furák ezek a tárhely szerződések is, figyeld a kisbetűs részt . Korlátlanul van minden mint a búcsúban, ha meg a forgalmad zavarja a többi oldal kiszolgálását akkor egyszerűen lekapcsolnak, és ezt majdnem bűntettlenül megtehetik mivel a szerződésekben erre figyelnek. Persze én megértem hogy nem lehet X ezer forintért korlátlan erőforrás-használatot biztosítani (és ebből fejleszteni), de akkor nem parasztvakítók. Elnézést kell kérjek azoktól akik tényleg komolyan üzemeltetnek néptárhelyeket. Mikor jelent ez igazi problémát: Elvileg mindig, mivel azt a látogatót akit egyszer nem tudsz kiszolgálni, többet az életben nem látod. Egy bizonytalan tárhelyen nem kezdhetsz stabil projektbe, és még csak nem is tervezhetsz. Gyakorlatilag a jelentőségét akkor veszi észre az ember, ha mondjuk fizetős hirdetője van, és nem tudja garantálni a rendelkezésre állást. (Értsd: Fizetnek a reklámért, és mikor a hirdető ellenőrzi az oldal az nem elérhető.) Mit tehetünk ilyenkor? Anélkül, hogy a kimaradásokat bizonyítani tudnánk, semmit. Mert ugye senki nem gondolja hogy XY szolgáltató (őszinteségi rohamot kap és) azt mondja, hogy igen tényleg leálltunk az éjszaka (sorry ebben hónapban ne fizess). A múltkor tárhelyet kerestem, kedves szomszédomnak (aki az inspirációt adta) , egy magyar céget találtam ami 100%-ban garantálta a rendelkezésre állást, és pénz visszafizetési garanciát vállalt erre. A szolgáltatás viszont rendkívül drága volt. Mit veszel a nyakadba ha ezzel elkezdesz foglalkozni? Ha ezzel a témával el kezdesz foglalkozni, vége a nyugalmadnak mint a Dallasnak Első gondolat: Üzleti szolgáltatásod van?
Üzleti szolgáltatásod van? Bérelj vagy vegyél szervert Állítsd be Fizesd a költségeit (Internet, Rendszergazdi, stb..) Anyagi kár jelentős De a legtöbb esetben az ilyen kezdeményezések (saját üzleti célú honlap) első időszakban bőven deficitet termel, ha egyáltalán valaha is beindul a szekér. Ebben az időszakban, komoly tőkével kéne rendelkezni a fenti dolgok megvalósításához. Valószínű a delikvens olcsó tárhelyet fog bérelni magának. Hogyan ellenőrizhetjük, a site működését? Vannak online fizetős szolgáltatások amik erre épültek. (meglepő módon Site elérhetőségét monitorozó magyar szolgáltatót kevés van) Saját Szkriptet írunk, ami meghatározott időnként lefut és emailt küld a kimaradás tényéről Online szolgáltatások: A felsorolt honlapoknak van ingyenes szolgáltatása, de a fizetős verzió sokkal ígéretesebb. (keresett kifejezés) http://host-tracker.com/ http://servermonitor.hu/ http://basicstate.com/ http://www.uptimedog.com/ http://www.siteuptime.com/ http://www.serviceuptime.com/ http://site24x7.com/ http://pingability.com/ Ha tudjuk igazolni a kimaradásokat: Ebben az esetben már lehet alapja a szolgáltatóval való vitára. Beszélünk a szolgáltatóval, hogy nem ezt vállalta. Szolgáltatót váltunk Egyéb Site optimalizálás: Bár a leírásban fel sem merül bennünk hogy a terhelésben mi is szerepet játszunk, lássunk néhány ötletet mivel csökkenthetnénk szerver és a magunk dolgát. A tartalom változás függvényében hozzunk létre statikus tartalmakat és azokat dobáljuk a látogatók elé. Felesleges SQL kéréseket indítani, lapokat összerakni, mikor a tartalom 24 óránként egyszer változik. Kód optimalizálás (gyorsítás) Képfájlok méretének csökkentése JavaScript és CSS fájlok tömörítése Ha nagy a baj, a robotokat küldjük el melegebb tájakra ott indexeljenek De miért nem csinálunk mi magunk egyszerű szkriptet ami időnként lefut, és küld egy E-mailt dátummal a kimaradás tényéről. Mi kell hozzá: A szkript (ez meglesz hamarosan) Egy másik szolgáltatás (tárhely) ahonnan futtatjuk, vagy akár saját gép ami 24 órában pötyög Egy időzítő ami időnként futtatja a szkriptet. (Cron) Tárhely követelmények: Ne ott legyen ahol az ellenőrzést végezzük, mert ha nem működik a szerver, akkor a szkriptünk sem fut le. PHP futtatási lehetőség, email és fopen függvények. Működésről: A program működhet webről, vagy parancssorból. A program induláskor beolvassa az adatokat (adat.txt fájlból), majd megnyitja a megadott URL-t. Ha sikerült hurrá és továbblép, ha nem sikerült akkor dobja az e-mailt. Egy rendkívül kisméretű fájt adjunk meg az útvonal végén, ha lehet változó névvel. adat.txt (CSV; szeparátor:
fájl tartalmáról:
adat.txt (CSV; szeparátor:
fájl tartalmáról:
A fájlt a 6. sortól veszi figyelembe a program, tehát az elejét hagyd meg (ha kitörlöd írd át a programot a 9. sorban 1. $adatok=file(ABS_PATH.”adat.txt”); ). A sorok tartalma: A levél címe; email címed amire a hibaüzenet megy; hivatkozás (link) pl.: 1. domain.tld teszt;
[email protected];http://www. az-en-domainom.hu/utvonal/pp.jpg A letöltés tartalmaz 2 nagyon pici fájlt (pp.jpg, pp.txt). Ezt nevezd át, majd töltsd fel a tárhelyedre, és az hivatkozásban add meg az új nevét. Természetes hivatkozhatsz más kisméretű fájlra, a lényeg hogy kicsi legyen. pl.: van egy domained: http://www.az-en-domainem.hu ide az images/ könyvtárba feltöltötted a pp.jpg képet mondjuk alma.jpg néven. Akkor az adat.txt fájl hivatkozás helyére ezt írod: http://www.az-en-domainem.hu/images/alma.jpg. De megadhatsz neki ilyen útvonalat is: /var/www/az-en-domain.hu/images/alma.jpg. Ha az E-maileket a profi Gmail.com szolgáltatásra (saját fiókra) küldjük, akkor a levelek szépen kereshetően lesznek tárolva. A program ismert hibái: Nem kezeli le a hibaüzeneteket, csak azt vizsgálja, hogy kapott-e tartalmat. Tehát ha a szolgáltató dob egy 404 hibaoldal, az nekünk már azt jelenit, hogy elérhető az oldal. Csak a teljes leállásokról fog figyelmeztetést adatni. Ha a távoli fájlt tartalmát összehasonlítjuk a helyben tárolt változattal, akkor pontosabb információt ad a szkript. Hogy tudod tesztelni, a működését: Átnevezed a adat.txt fájlban megadott, állományt. Ha a siteodon a 404 hibaüzikre oldalt dobsz, akkor bár a fájlt nem találja, de mivel átirányításkor kap tartalmat ezért a kérés sikeresnek minősül. (Megjegyzem ilyenkor tényleg elérhető, mert volt válasz.) Ezért nem alkalmas a szkript arra, hogy 100%-os biztonsággal szavatoljuk az eredményét. Persze lehet javítani rajta, de ha hálózati vagy hardveres okokból nem elérhető a szkriptünk, akkor megint szia teszt van. Biztonság: A adat.txt fájlt olyan helyre tedd ahol nem tudják behívni a böngészőbe. Magát a fájlokat olyan helyre tedd ami nem egyszerűen kitalálható (hozz létre valami hülye mappa nevet és oda másold be). Csak saját felelőségre használd a szkriptet, ne képezze a vitád alapját. Természetesen ez a megoldás sem garantálja, hogy a siteod mindig elérhető lesz, de legalább tudni fogsz róla ha leáll. Letöltések tartalma: site_tester.sh – parancssoros változat web_site_tester.php – weboldalra feltehető változat. adat.txt fájl – beállítások subject;email;url pp.jpg – nagyon pici jpg kép pp.txt – szöveges fájl Csv fájlunk (adat.txt): 1. 2. 3. 4. 5. 6.
####################################################################### # töltsük fel egy (pp.jpg) képet az adott könyvtárba és azt hívjuk meg # teszt neve (Subject);email (email cím);url az állományra (URL|Path); # pl.: tesztem;
[email protected]; http://www.te-neved.tld/pp.jpg; ####################################################################### subject;
[email protected]; http://www.te-neved.tld/durvapici-fajl.txt
Php tartalom: error_reporting(0); set_time_limit(0); $dir=dirname(__FILE__).”/”; define(“ABS_PATH”, $dir);
define(“ABS_PATH”, $dir); #adat.txt első 5 sorát nem dolgozzuk fel (komment) $adatok=array_slice(file(ABS_PATH.”adat.txt”), 5); $datum=date(“Y-m-d H:i:s”); ob_start(); foreach($adatok as $soradat){ $row=array_map(“trim”, explode(“;”, $soradat)); $nev=$subject=$row[0]; $email=$row[1]; $url=$row[2]; if(empty($url) | empty($email)){ continue; } $t=false; $t=SITE_OPEN($url); if(!$t){ //sikertelen $mailbody=”A/Az {$url} honlap {$datum} időpontban nem volt elérhető.”; SITE_MAIL($email, $subject . ” {$mailbody}”, $mailbody,”honlap ellenorzes”); } } ob_end_flush(); flush(); ####################################################################### #funkciók //E-mail küldés function SITE_MAIL($to, $subject, $mailbody,$from=”
[email protected]”) { $mailheader = “From: “.$from. “rn” . “Reply-To: “.$from. “rn” . “X-Mailer: PHP/” . phpversion(); $mail_txt=<< To: $to Subject: $subject Body: $mailbody From: $from MAIL_TXT; //echo $mail_txt; if (mail($to, $subject, $mailbody, $mailheader)){ return true; } return false; } function SITE_OPEN($url) { ini_set(‘user_agent’,'MSIE 4.0b2;’); $p = fopen($url,’r'); $result = fread($p,8192); return $result; } ?> Időzítés, futtatás Ubuntun:
Időzítés, futtatás Ubuntun: Saját gépről, mikor megy a géped néha meghívja az adott URl-t: Ubuntu Linuxon GNOME ütemezővel (http://gnome-schedule.sourceforge.net) létre tudsz hozni olyan bejegyzést ami időközönként lefuttat egy állományt. Én mikor kipróbáltam Lynx nevű parancssoros böngészővel hívtam meg a weboldalon található ellenőrző szkriptet. (lynx http://www.te-domaned.tld/web_site_tester.php) apt-get install lynx apt.-get install gnome-schedule További időzítés: WebCron, Cron. Online Cron szolgáltatások is vannak, itt szintén beállíthatjuk hogy mikor fusson le egy kérés adott fájlra. Webes Cron szolgáltatások: http://www.webcron.org http://www.freewebcron.com/ CronTab generátor: http://www.thepcmanwebsite.com/crontab_generator.shtml Windowson is létre lehet hozni időzített feladatokat, és IE-vel lefuttatható az adott weboldalon található szkript. nincs kapcsolódó bejegyzés.
Téma: Webalkalmazás fejlesztés Forrás: http://opendir.hu Szerző: ArtH2O Erdeti URL: http://opendir.hu/webalkalmazas/php/247-website-uptime-monitoring/