frame

Sveiki apsilankę!

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

Prisijungti Registruotis

Apache Web serverio konfigūravimas

IV_RomanLIV_RomanL Interneto vizija
edited rugpjūčio 21 Į Web serveriai
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
Pažymėtos temos:

Komentarai

  • jmlgroupjmlgroup Naujokas (-ė)
    edited 2012 rugpjūčio 21
    Geras straipsnis, tik norėjau patikslinti, kad galutinis kodo formatas kurį reikia įterpti yra:
    StartServers 32
    MinSpareServers 16
    MaxSpareServers 64
    MaxClients 128
    

    Skaičius parinkite pagal savo serverio duomenis naudodamiesi anksčiau aprašyta formule.
  • MiXFiXMiXFiX Dalyvis (-ė)
    edited 2012 rugpjūčio 21
    jmlgroup parašė: »
    Geras straipsnis, tik norėjau patikslinti, kad galutinis kodas kurį reikia įterpti yra:
    StartServers 32
    MinSpareServers 16
    MaxSpareServers 64
    MaxClients 128
    

    Kodėl? Juk ne būtinai toks. Tu paskaičiavai pagal savo ram kiekį, o kitam reiks viską perskaičiuoti.
  • jmlgroupjmlgroup Naujokas (-ė)
    edited 2012 rugpjūčio 22
    MiXFiX parašė: »
    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.:)
  • GodPlayGodPlay Naujokas (-ė)
    edited 2012 lapkričio 21
    Sveiki,

    norėčiau sužinoti kas čia per funckija:
    MaxRequestsPerChild   0
    
  • MiXFiXMiXFiX Dalyvis (-ė)
    edited 2012 lapkričio 21
    GodPlay parašė: »
    Sveiki,

    norėčiau sužinoti kas čia per funckija:
    MaxRequestsPerChild   0
    

    Kiek daugiausiai užklausų gali gauti vienas procesas.
  • domenaidomenai Naujokas (-ė)
    edited 2012 gruodžio 21
    Pas mane pareina daugybe per post siunciamu duomenu (5-10 per sekunde) kas padetu nuo to apsisaugoti? mod_evasive kaip supratau filtruoja tik per get siunciamas uzklausas, mod_security gal padeda? O gal tiesiog apache nustatymuose kazka pakeitus nebeleistu niekadejuj siusti tiek uzklausu per post?
  • IV_RomanLIV_RomanL Interneto vizija
    edited 2012 gruodžio 27
    Sveiki,

    paprasčiausias ir greičiausias būdas būtų apriboti POST, GET, PUT užklausas specifiniam IP adresui .htaccess failo pagalba:
    <Limit GET POST PUT>
     order deny,allow
     deny from 111.222.333.444
     allow from all
    </Limit>
    
  • domenaidomenai Naujokas (-ė)
    edited 2012 gruodžio 27
    Del ip nieko nebus, nes pavaro is skirtingu ip...
  • IV_RomanLIV_RomanL Interneto vizija
    edited 2012 gruodžio 28
    Galite blokuoti ištisą potinklį .htaccess failo pagalba. Jei srautas plūsta į vieną failą, tuomet galite uždrausti POST užklausas išvis:
    <Location /failas.php>
    <Limit POST>  
    Order deny,allow       
    Deny from all
    </Limit>
    </Location>
    

    Taip pat įdiekite mod_security paketą.
  • domenaidomenai Naujokas (-ė)
    edited 2012 gruodžio 29
    Aisku, o ka konreciai daro tas Limit? galbut kazkur metosi kokie jo nustatymai?

    Ai jau isbandziau, tiesiog blokuoja visas uzklausas... Nu tai man is to jokios naudos...
  • IV_RomanLIV_RomanL Interneto vizija
    edited 2012 gruodžio 31
    Sveiki,

    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.
  • domenaidomenai Naujokas (-ė)
    edited 2013 sausio 1
    Na reikia kad tiesiog jei per sekunde is to pacio ip pareina 3 uzklausos tai kad jam kazkuriam laikui apribotu prieinamuma...
  • tautwism2tautwism2 Naujokas (-ė)
    edited 2013 balandžio 29
    Pagal šitą pamoką suconfiguravau mpm_worker_module, o ką daryti su šituo?
    <IfModule mpm_event_module>
    StartServers 1
    MaxClients 10
    MinSpareThreads 1
    MaxSpareThreads 4
    ThreadLimit 64
    ThreadsPerChild 25
    MaxRequestsPerChild 0
    </IfModule>
  • IV_RomanLIV_RomanL Interneto vizija
    edited 2013 balandžio 29
    Jei šio modulio nenaudojate (dažniausiai taip ir yra) su nustatymais nieko nedarykite. Šis modulis yra eksperimentinis, tad jį naudoti produkcinėje aplinkoje nerekomenduotina.
  • tautwism2tautwism2 Naujokas (-ė)
    edited 2013 balandžio 29
    IV_RomanL parašė: »
    Jei šio modulio nenaudojate (dažniausiai taip ir yra) su nustatymais nieko nedarykite. Šis modulis yra eksperimentinis, tad jį naudoti produkcinėje aplinkoje nerekomenduotina.

    Dekui, tinklalapis pas mane wordpress, ieskojau, neradau parasyta kad naudotu.
  • ugnelakysugnelakys Naujokas (-ė)
    edited 2015 spalio 7
    IV_RomanL parašė: »
    Sveiki,

    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.

    Nelabai įsivaizduoju, kur tą limit panaudoti.
  • iv_laurynasjiv_laurynasj Naujokas (-ė)
    edited 2015 spalio 27
    Tai galite panaudoti atskirų IP ar visų potinklių blokavimui. Pavyzdžiui, galite užblokuoti visus Kinijai suteiktus potinklius, kas reikštu, jog šios šalies gyventojai negalėtų pasiekti Jūsų svetainės ir pan.
Norėdami palikti komentarą, turite prisijungti arba registruokis.