Prenumeruok RSS

Straipsniai pagal gairę

Apache virtualhost skirptas

Kaip ir daugelis mėgstu viską pasidaryti pagal savo poreikius, serverio administravime nuotaikos tokios pačios. Valdymo panelės yra gan naudingas įrankis, bet galima laisvai gyventi ir be jų. Be to dažnai jie naudojai papildomų bibliotekų, programų kurios dar papildomai ryja serverio resursus.

Kurti rankiniu būdu naujus apache VirtualHost’us yra monotoninis darbas, daug lengviau turėti skriptuką, kuris už jus visą darbą atliks. Mano atveju naudojamas bash skriptukas yra toks:

#!/bin/bash
clear
echo -n “Domeno vardas: “; read domain
name=$(echo $domain | cut -d. -f1)
echo
echo “Ar nori sukurti domena “$domain;
echo -n “(y/n) “; read ans2
if [ "$ans2" = "y" ]; then
echo Kuriam
else
echo Ir vel rasai nesamones…
exit 0
fi

mkdir -p /home/useris/domains/$domain/public_html
mkdir -p /home/useris/domains/$domain/logs
echo hello $domain > /home/useris/domains/$domain/public_html/index.html
chown -R useris:useris /home/useris/domains/$domain

echo
echo > ~/temp
echo ‘<VirtualHost *:80>’  >> ~/temp
echo ‘     ServerName      ‘$domain >> ~/temp
echo ‘     ServerAlias      www.’$domain >> ~/temp
echo ‘     DocumentRoot     /home/useris/domains/’$domain’/public_html’ >> ~/temp
#echo ‘     CustomLog       /home/useris/domains/’$domain’/logs/access.log combined’ >> ~/temp
#echo ‘     ErrorLog       /home/useris/domains/’$domain’/logs/error.log’ >> ~/temp
echo ‘</VirtualHost>’ >> ~/temp
echo Done.

cat ~/temp >> /home/useris/conf/vhosts.conf

echo -n “Restart the Server? (y/n) “; read ans4
if [ "$ans4" = "y" ]; then
sudo /sbin/service httpd restart
echo
echo Server Restarted.
exit 0
else
echo
echo Server Not Restarted.
exit 0
fi

Cacti – resursų stebėjimas

Prieš pusę metų rašiau apie panašų skirtą munin leidžiantį stebėti serverio resursų grafikus. Per PHP konferenciją sužinojau apie alternatyvą cacti, kuris leidžia taip pats stebėti norimo serverio resursus: apkrovimas, cpu, atmintis, mysql ir t.t Tam yra prirašyta daug įvairiausių pluginų (cactiusers , google code projekte ir t.t). Jis tiesa pasakius man labiau patiko nei munin.

Įsivaizduokite, kad šio įrankio pagalba galite matyti, kad ir jūsų spausdintuvo kasečių būseną, ar kokių servisų aktyvumą (tarkim lėktuvų skrydžių api kvietimus ir stebėjimas ar jie pavyko ar ne). Kadangi visa sistema parašytą su PHP tai pluginai ganėtinai lengvai yra rašomi su šia programavimo kalba.
Dabar tereikia tik surasti kritinius sau reikalingus savo projektuose servisus ir pasirašyti pluginą.

Norėjau tiesa tokio resursų stebėjimo, kadangi paprastai lietuvių hostingo tiekėjai neteikia informacijos apie VDS statusus, reikia turėti savo. Prieš kelias dienas serveriai.lt paleido galimybę matyti interneto sunaudojimo, apkrovimo, atminties bei talpos grafikus. Žinoma galėtų tokių būti ir daugiau: apache, mysql stebėjimai. Bei galėtų ateiti pranešimai apie pašto, http, mysql būsenas (veikia/neveikia). Gal dar patobulins? Laukiam…

Svetainės talpinimas ir serverio resursai

Vienas iš dažniausiai iškylančių klausimų prieš paleidžiant, bet kokį projektą – kokį talpinimo planą pasirinkti. Paprastai firmos svetainei / blogui dažniausiai užtenka paprasčiausio plano (shared hosting). Didėjant programinės įrangos reikalavimams (tarkim e-shop) ar vartotojų kiekiui reikia vis galigesnio serverio.

Naudojant pigiausiais talpinimo planus dažniausiai net nereikia rūpintis nei serverio priežiūra, nei resursų stebėjimų. Bet būna įvairiausių išimčių. Blogiausiai yra tuomet, kai vartotojas gauna pranešimą: “Informuojame, kad jūsų talpinamos interneto svetainės itin smarkiai apkrauna mūsų serverio centrinį procesorių (CPU), todėl trikdo kitų klientų tame pačiame serveryje patalpintų svetainių darbą.“  ir siūlo pasirinkti brangesnį dedicated planą. Vartotojas paprastai jokių įrodymų negauna.

Nuomojant bent dalį serverio (dedicated hosting) situacija yra kitokia. Kadangi jūs patys turite pasirinkimo teisę kokią serverio programinę įrangą instaliuoti, galima įdiegti papildomus serverio resursų stebėjimo komponentus. Ką reikia stebėti? Kad ir vienas iš svarbių parametrų operatyviąją atmintį. Įsivaizduokite, kad atidarant tam tikrą puslapį sunaudojama 10MB atminties. Paprastai pigiausių dedicated serverių apribojama iki 256MB, 512MB, tad nesunkiai galima paskaičiuoti, kiek vartotojų vienu metu gali lankytis, be trukdžių (papildomas laukimas, puslapio atidarymo greitis). O dar nereikia pamiršti, kad operatyviąją atmintį naudoja ir serverio programinė įrangą (duomenų bazės, apache, el. paštas servisai ir t.t). Žinoma vienu metu 20-50 vartotojų jau yra tikrai nemažai (tai gali būti ir  >50-60 tūkstančių parodymų per valandą!), bet dideliuose projektuose, bei piko metu tai gali laisvai nutikti.

Todėl būtina stebėti serverio resursus norint turėti nuoseklų serverio darbą. Viena iš rekomenduotinų priemonių munin. Šią programa gan nesunkiai galima instaliuoti ir galima surasti tikrai naudingų pluginų (o suinteresuotiems pasirašyti, kad ir savo).

Suinstaliavus ir per laiką gavus tam tikrą statistiką, daug lengviau daryti išvadas reikia ar ne galingesnės sistemos.

Saugokitės AVG 8 – jis labai alkanas ir gali pakenkti

Rugpjūčio mėnesio pradžioje sulaukiau “malonaus” laiškelio iš serveriai.lt, kuris paprašė susimokėti sąskaitą už išnaudotą srautą. Jei tai būtų įprastinė man situacija – nesukčiau sau galvos. Bet tai, ką pamačiau buvo iš fantastikos srities. Srauto buvo išnaudota net 54GB, kai vidutiniu lankomumu išnaudodavau tik kokius 4GB srauto. Kadangi lankomumas yra nepakilęs įtariau, kad čia yra kažkas blogai ir aš buvau teisus.

Visų pirma kreipiausi į serveriai.lt dėl šios problemos. Iš jų naudos nebuvo jokios. Jie pasakė, kad jų programinė įranga veikia gerai. Ir daugiau nebuvo jiems jokio intereso padėti surasti problemą.
Taigi teko pačiam nagrinėtis situaciją. Iš karto nepavyko surasti problemos, nes ieškojau ne ten kur reikėjo. Bet po šiokių tokių analizių atradau, kad svetainės lankomumo statistikoje yra labai didelis nerastų puslapių kiekis.(1 673 343), kuris ir sugeneravo tuos papildomus ~50GB duomenų. Panagrinėjęs apache log failus atradau įdomius įrašus, kurie kurstė mano smalsumą. Jei įdomu įtartinos eilutės pasirodė šios:

89.116.191.109 – - [30/Aug/2008:12:03:59 +0300] “GET /tag/gmail/+ HTTP/1.1″
404 33216 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;1813)”
89.116.191.109 – - [30/Aug/2008:12:04:02 +0300] “GET /tag/gmail/+/+
HTTP/1.1″ 404 33224 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1;1813)”
89.116.191.109 – - [30/Aug/2008:12:04:04 +0300] “GET /tag/gmail/+/+/+
HTTP/1.1″ 404 33199 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1;1813)”
89.116.191.109 – - [30/Aug/2008:12:04:07 +0300] “GET /tag/gmail/+/+/+/+
HTTP/1.1″ 404 33216 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.1;1813)”
……
ir taip auga auga

Visų pirma buvo keista matyti tokias nuorodas ir pirmiausiai priėjau išvados, kad kaltas koks nors dinaminis skriptas kuris yra mano svetainėje. Vienas iš įtariamųjų kilo dėl textads.lt reklaminių banerių, nes srautas pakilo tą pačia dieną kai baneriai buvo įjungti ir sumažėdavo tuomet, kai aš jį išjungdavau. Bendradarbiavome su textads direktoriumi problemos paieškoje. Bet programuotojai atsakingi už šią sistemą jokių problemų nerado. Net nesugebėjo rasti priežasties.

Tad vėl pats tęsiau sprendimo paieškas. Tęsiau paiešką ieškodamas informacijos apie keistą (toks vaizdas kad nepilnas) naršyklės headerį vildamas, kad ne vienas aš buvau susidūręs su čia problema… ir pasirodo tokių yra ne vienas. Paieška užtruko visai nedaug, nes problema buvo globali.

avglogo.jpgTaigi kaltininkas AVG 8 antivirusinė programa. AVG antivirusinė turi taip vadinamą toolbarą, kurio viena iš savybių (linkscanner) nagrinėti ar nėra puslapyje kenksmingų/apgaulingų nuorodų. Teoriškai ji svetainės srautą turėtų padidinti tik 2 kartus, bet dėl kažkokios klaidos/bug’o ar skriptų konfliktų (kuris pas mane buvo su textads.t) prasideda begalinis puslapio turinio krovimas (spėju kol vartotojas neuždaro puslapio). Ir visa tai sudarė man papildomus ~50GB duomenų srauto. Koks dalykas yra šioje situacijoje pagrindinis katalizatorius.. neaišku, žinau tik, kad dėl wordpress/textads/AVG linkscanner konflikto. Ar čia wordpress turi įtakos… nežinau.

Vienas iš sprendimų blokuoti blogus lankytojus. Šiuo atveju AVG srautą:

RewriteEngine on
Rewritecond %{HTTP_USER_AGENT} “.*MSIE 6.0; Windows NT 5.1; SV1.$” [OR]
Rewritecond %{HTTP_USER_AGENT} “.*MSIE 6.0; Windows NT 5.1;1813.$”
RewriteCond %{HTTP_REFERER} ^$
ReWriteCond %{HTTP:Accept-Encoding} ^$
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteRule ^.* http://freeforum.avg.com/?LinkScannerSucks [R=307,L]

Daugiau informacijos apie šią problemą http://www.avg-watch.org/

Naujas svetainių talpinimo žaidėjas: vienas planas – viena kaina

Internetinių tinklapių talpinimo paslaugų tiekėjų didėja kaip ant mielių. Žinoma, kartais koks monstriukas nusiperka vienas kitą. Galima pastebėti, kad mažėja paslaugų kainos dėl konkurencijos. Štai pasirodė naujas žaidėjas viphostingas kuris teigia:

Ar teisinga, kad vienas vartotojas už tą pačią paslaugą moka daugiau nei kitas
Visi klientai turi tik vieną planą ir tik vieną kainą

Na neaišku kokios kokybės bus serveris / srautai, kadangi tiekėjas yra naujas ir užsiminėjo nežinia kuo anksčiau (membarta). Bet kainų politika man patinka. Nėra tokia, kuri yra papigiai už vieną litą, bet ir nevalgo piniginės kaip koks vardas.lt.

Palyginus su serveriai.lt  kainų skirtumas akivaizdus.  Ką suteikia serveriai už 30Lt be PVM jie suteikia už 10 su PVM. Be to viršijus srautą, ne taip skaudžiai eina per piniginę (palyginimui 0.25-1LT prieš 5LT). Gerai, kad dar turiu pakankamą atsargą…

Ei, serveriai.lt kaip jums šitas konkurentas? Juk kainodara nekeista jau ilgai…