Web serveris - tai tarnyba, užtikrinanti, kad Jūsų svetainės būtų matomos internete. Nuo šios tarnybos veikimo priklauso kaip sparčiai bei kiek vartotojų galės aptarnauti Jūsų svetainės.
Apache Web serveris turi daug konfigūracinių parametrų, kiekvienas kurių turi savo svarbią reikšmę, įtakoja resursų paskirstymą bei racionalų jų naudojimą.
Pagal nutylėjimą dedikuotuose serveriuose su valdymo pultais yra naudojamas Apache prefork modelis, kuomet vieną užklausą aptarnauja vienas procesas. Serveris negali tokių procesų turėti begalinę aibę, todėl būtina šių procesų kūrimą, panaikinimą ar palaikymą tinkamai sukonfigūruoti, atsižvelgiant į išskirtus resursus.
Bendru atveju patikrinti kokį modelį naudoja Apache tarnyba galite įvykdę šią komandą:
httpd -V
Gautame rezultate reikia ieškoti šios eilutės:
-D APACHE_MPM_DIR="server/mpm/prefork"
Tam egzistuoja pagrindiniai 4 kintamieji, naudojami Web serverio konfigūraciniuose failuose:
StartServers - pradinis paleidžiamų procesų kiekis;
MinSpareServers - pageidaujamas minimalus budinčių procesų kiekis;
MaxSpareServers - pageidaujamas maksimalus budinčių procesų kiekis;
MaxClients - maksimalus leidžiamas procesų kiekis.
Optimalios reikšmės kiekvienam iš šių kintamųjų galėtų būti skaičiuojamos pagal šias formules:
StartServers =
RAM / 128;
MinSpareServers =
RAM / 256;
MaxSpareServers =
RAM / 64;
MaxClients =
RAM / 32.
Čia
RAM - operatyviosios atminties kiekis megabaitais.
Pavyzdžiui dedikuoto serverio "C4" planui reikšmės galėtų būti tokios:
StartServers = 4096 / 128 =
32;
MinSpareServers = 4096 / 256 =
16;
MaxSpareServers = 4096 / 64 =
64;
MaxClients = 4096 / 32 =
128.
Šių kintamųjų reikšmės turi būti nustatytos Web serverio konfigūraciniame faile, kuris yra patalpintas šakniniame Web serverio kataloge. Norint redaguoti šį failą įvykdykite šią komandą:
nano -w /etc/httpd/conf/httpd.conf
Atlikę reikiamus pakeitimus teksto redaktoriuje, failą galėsite išsaugoti CTRL+O klaviatūros mygtukų paspaudimu. Norint uždaryti teksto redaktorių spauskite CTRL+X mygtukų derinį.
Norint, kad atlikti pakeitimai įsigaliotų, Web serverio tarnybą reikės perkrauti. Tai galite atlikti įvykdę šią komandą:
service httpd restart
Komentarai
Skaičius parinkite pagal savo serverio duomenis naudodamiesi anksčiau aprašyta formule.
Kodėl? Juk ne būtinai toks. Tu paskaičiavai pagal savo ram kiekį, o kitam reiks viską perskaičiuoti.
Ačiū, pasitaisiau. Norėjau ne konkrečius skaičius pabrėžti, bet kokiu formatu turi būti nurodytos reikšmės. Naujokams gali būti neaišku.:)
norėčiau sužinoti kas čia per funckija:
Kiek daugiausiai užklausų gali gauti vienas procesas.
paprasčiausias ir greičiausias būdas būtų apriboti POST, GET, PUT užklausas specifiniam IP adresui .htaccess failo pagalba:
Taip pat įdiekite mod_security paketą.
Ai jau isbandziau, tiesiog blokuoja visas uzklausas... Nu tai man is to jokios naudos...
daugiau apie Limit direktyvą galite sužinoti adresu,
http://httpd.apache.org/docs/2.2/mod/core.html
. Realiai IP blokavimas (ištisų potinklių) gelbėtų šioje situacijoje, nes automatiškai atpažinti ar POST, GET užklausos yra piktybinės yra ganėtinai sunku. Užklausas gali siųsti paieškos robotai.<IfModule mpm_event_module>
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
Dekui, tinklalapis pas mane wordpress, ieskojau, neradau parasyta kad naudotu.
Nelabai įsivaizduoju, kur tą limit panaudoti.