Pagrindinis » kaip » Priskirtos virtualios žiniatinklio serverio keitimas

    Priskirtos virtualios žiniatinklio serverio keitimas

    Kai gaunate specialų virtualų serverį, kad paleistumėte savo svetainę, yra tikimybė, kad ji yra sukonfigūruota visiems ir nėra pritaikyta maksimaliai našiai naudoti svetainę.

    Turinys

    [paslėpti]

    • 1 Apžvalga
    • 2 „Linux“ konfigūracija
      • 2.1 Išjungti DNS
      • 2.2 Išjungti „SpamAssassain“
      • 2.3 Išjungti xinetd
      • 2.4 Apriboti „Plesk“ atminties naudojimą
      • 2.5 Išjungti arba išjungti „Plesk“ (pasirinktinai)
    • 3 „MySQL“ konfigūracija
      • 3.1 Įgalinti užklausos talpyklą
      • 3.2 Išjungti TCP / IP
    • 4 Apache konfigūracija
    • 5 PHP konfigūracija
      • 5.1 Pašalinti nereikalingus PHP modulius
      • 5.2 PHP „Opcode“ talpykla
    • 6 Atsarginės kopijos
      • 6.1 Sukurti automatinį atsarginių kopijų scenarijų
      • 6.2 Sinchronizuoti atsargines kopijas iš svetainės su Rsync
    • 7 Saugumas
      • 7.1 Išjungti šakninį prisijungimą per SSH
      • 7.2 Išjungti SSH 1 versiją
      • 7.3 Paleiskite SSH serverį iš naujo
      • 7.4 Patikrinkite, ar nėra atidarytų uostų
      • 7.5 Užkardos nustatymas
    • 8 Taip pat žr
    • 9 Nuorodos

    Apžvalga

    Yra daug problemų, kuriose norime padidinti našumą:

    • Linux konfigūracija
      Paprastai veikia paslaugos, kurių nereikia, taupyti atmintį, kuri galėtų būti naudojama daugiau ryšių.
    • „MySQL“ konfigūracija
      Dažnai numatytieji nustatymai yra pagrįsti nedideliu serveriu, galime pridėti keletą pagrindinių pakeitimų, kad padidintume našumą.
    • „Apache“ konfigūracija
      Pagal numatytuosius nustatymus dauguma prieglobos paslaugų teikėjų įdiegia „apache“ su beveik kiekvienu moduliu. Nėra jokios priežasties įkelti modulius, jei jų niekada nenaudosite.
    • PHP konfigūracija
      Numatytoji PHP konfigūracija yra taip pat ištinusi, paprastai yra įdiegta nereikalingų papildomų modulių tonų.
    • PHP „Opcode“ talpykla
      Vietoj to, kad kiekvieną kartą būtų galima kompiliuoti skriptus PHP, atminties atmintyje sukonfigūruotas atminties atminties talpykloje talpyklų talpykla.
    • Atsarginės kopijos
      Turbūt turėtumėte įdiegti kai kurias automatines atsargines kopijas, nes jūsų prieglobos paslaugų teikėjas to nepadarys.
    • Saugumas
      Žinoma, „Linux“ yra pakankamai saugi pagal nutylėjimą, tačiau paprastai yra keletas aktualių saugumo problemų, kurias galite išspręsti keliais greitais nustatymais.

    „Linux“ konfigūracija

    Yra nemažai „tweaks“, kuriuos galite padaryti, o tai šiek tiek skirsis priklausomai nuo naudojamo serverio. Šie „tweaks“ skirti serveriams, kuriuose veikia „CentOS“, tačiau jie turėtų dirbti daugeliui DV serverių.

    Išjungti DNS

    Jei jūsų prieglobos paslaugų teikėjas tvarko jūsų domeno DNS (galbūt), galite išjungti DNS paslaugą.

    išjungti dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    „Chmod“ komanda pašalina vykdymo leidimą iš scenarijaus, sustabdydama ją paleisti paleisties metu.

    Išjungti „SpamAssassain“

    Jei nenaudojate el. Pašto abonementų pačiame serveryje, neturėtumėte nerimauti paleisti anti-spam įrankius. (Taip pat turėtumėte patikrinti „Google Apps“, daug geresnį el. Pašto sprendimą)

    /etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin

    Išjungti xinetd

    Procesas „xinetd“ apima keletą kitų procesų, iš kurių nė vienas nėra naudingas tipiniam žiniatinklio serveriui.

    /etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd

    Ribokite „Plesk“ atminties naudojimą

    Jei naudojate plesk skydelį, galite priversti jį naudoti mažiau atminties pridėdami parinkčių failą.

    vi /usr/local/psa/admin/conf/httpsd.custom.include

    Į failą pridėkite šias eilutes:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Atminkite, kad ši parinktis veikia „MediaTemple DV“ serveriuose, bet nebuvo patikrinta jokiuose kituose. (Žr. Nuorodas)

    Išjungti arba išjungti „Plesk“ (pasirinktinai)

    Jei naudosite „Plesk“ tik kartą per metus, labai mažai priežasčių palikti jį visai veikia. Atminkite, kad šis žingsnis yra visiškai neprivalomas ir šiek tiek pažengęs.

    Paleiskite šią komandą, kad išjungtumėte plesk:

    /etc/init.d/psa sustoti

    Galite išjungti jį paleisti paleisties metu, vykdydami šią komandą:

    chmod 644 /etc/init.d/psa

    Atminkite, kad jei jį išjungsite, negalite paleisti jo rankiniu būdu, nekeisdami failų leidimų (chmod u + x).

    „MySQL“ konfigūracija

    Įgalinti užklausos talpyklą

    Atidarykite failą /etc/my.cnf ir pridėkite toliau nurodytas eilutes [mysqld] skyriuje:

    [mysqld] query-cache-type = 1 užklausa-talpyklos dydis = 8M

    Jei norite, į užklausos talpyklą galite pridėti daugiau atminties, tačiau nenaudokite per daug.

    Išjungti TCP / IP

    Nenuostabu, kad prieglobos skaičius leis prieigą prie „MySQL“ TCP / IP pagal numatytuosius nustatymus. Galite sužinoti, ar „mysql“ klausosi TCP / IP, vykdydama šią komandą:

    netstat -an | 3306 grep

    Jei norite išjungti, į savo /etc/my.cnf failą pridėkite šią eilutę:

    praleisti tinklą

    „Apache“ konfigūracija

    Atidarykite savo httpd.conf failą, kuris dažnai randamas faile /etc/httpd/conf/httpd.conf

    Raskite tokią liniją:

    Timeout 120

    Ir pakeiskite ją į:

    Timeout 20

    Dabar suraskite skyrių, kuriame yra šios eilutės, ir prisitaikykite prie panašaus:

    StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

    PHP konfigūracija

    Vienas iš dalykų, kuriuos reikia nepamiršti keisdami serverį PHP platformoje, yra tas, kad kiekvienas „apache“ siūlas įkelia PHP į atskirą atminties vietą. Tai reiškia, kad nepanaudotas modulis prideda 256kb atminties į PHP, per 40 apache sriegių jūs švaistote 10 MB atminties.

    Pašalinkite nereikalingus PHP modulius

    Turėsite rasti savo php.ini failą, kuris paprastai randamas adresu /etc/php.ini (Atkreipkite dėmesį, kad kai kuriuose platinimuose bus /etc/php.d/ katalogas su .ini failų skaičiumi, po vieną kiekvienam moduliui.

    Komentuokite bet kokius krovos modulius su šiais moduliais:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • ioncube krautuvas
    • Džonsas
    • imap
    • ldap
    • ncurses

    Todo: pridėkite daugiau informacijos čia.

    PHP „Opcode“ talpykla

    Yra daugybė atminties talpyklų, kurias galite naudoti, įskaitant APC, eAccelerator ir Xcache, o paskutinis - mano asmeninis pageidavimas dėl stabilumo.

    Atsisiųskite „xcache“ ir ištraukite jį į katalogą, tada paleiskite šias komandas iš xcache šaltinio katalogo:

    phpize ./configure --enable-xcache make make install

    Atidarykite failą php.ini ir pridėkite naują skyrių „xcache“. Jei php moduliai bus pakrauti iš kitos vietos, turėsite sureguliuoti kelius.

    vi /etc/php.ini

    Pridėti failą į šį skyrių:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Pakeiskite xcache.size, kad sureguliuotumėte opcode cache xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Pakeiskite xcache.var_size, kad sureguliuotumėte kintamosios talpyklos dydį xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8K xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Išjungta xcache.readonly_protection = Xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Įjungta xcache.stat = Įjungta xcache.optimizer = Išjungta

    Todo: Reikia išplėsti šią bitą ir nuorodas į nuorodą į xcache.

    Atsarginės kopijos

    Yra labai mažai svarbių dalykų nei automatizuotos jūsų svetainės atsarginės kopijos. Gali būti, kad iš prieglobos paslaugų teikėjo galėsite gauti atsarginių kopijų, kurios taip pat yra labai naudingos, bet aš taip pat norėčiau turėti automatines atsargines kopijas.

    Sukurkite automatinį atsarginių kopijų scenarijų

    Paprastai pradedu kurti / atsarginės kopijos katalogą, kuriame yra / backups / files katalogas. Šiuos kelius galite reguliuoti, jei norite.

    mkdir -p / atsarginės kopijos / failai

    Dabar sukurkite atsarginių kopijų katalogą atsarginių kopijų kataloge:

    vi /backups/backup.sh

    Į failą pridėkite toliau pateiktą informaciją, prireikus sureguliuodami kelius ir mysqldump slaptažodį:

    #! / bin / sh THEDATE = "data +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / files / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar rasti / atsargines kopijas / failus / svetainę * -mtime +5 -exec rm  \ t rasti / atsargines kopijas / failus / db * -mtime +5 -exec rm  \ t

    Skriptui pirmiausia bus sukurtas datos kintamasis, kad visi failai būtų pavadinti vienodomis atsarginėmis kopijomis, tada iškraunama duomenų bazė, užfiksuotų žiniatinklio rinkmenas ir gzips juos. Rasti komandas naudojamas pašalinti visus failus, vyresnius nei 5 dienas, nes nenorite, kad jūsų diskas baigtųsi.

    Sukurkite scenarijų vykdant šią komandą:

    chmod u + x /backups/backup.sh

    Toliau jums reikės priskirti, kad jis būtų automatiškai paleistas cron. Įsitikinkite, kad naudojate paskyrą, kuri turi prieigą prie atsarginių kopijų katalogo.

    crontab-e

    Pridėti Crontab šią eilutę:

    1 1 * * * /backups/backup.sh

    Galite išbandyti scenarijų iš anksto, paleisdami jį, kai prisijungiate prie vartotojo abonemento. (Paprastai atlieku atsargines kopijas kaip root)

    „Rsync“ sinchronizuokite atsargines kopijas iš svetainės

    Dabar, kai naudojate automatines jūsų serverio atsargines kopijas, galite sinchronizuoti jas kitur naudodami „rsync“ įrankį. Jūs norėsite perskaityti šį straipsnį apie tai, kaip konfigūruoti ssh raktus automatiniam prisijungimui: pridėkite viešąjį SSH raktą į nuotolinį serverį vienoje komandoje

    Galite tai išbandyti naudodami šią komandą „Linux“ arba „Mac“ įrenginyje kitoje vietoje (namuose turiu „Linux“ serverį, kur tai veikia)

    rsync -a [email protected]: / atsarginės kopijos / failai / * / offsitebackups /

    Tai užtruks gana ilgai, kol bus paleistas pirmą kartą, bet galiausiai jūsų vietinis kompiuteris turi turėti failų katalogo kopiją / offsitebackups / kataloge. (Prieš paleisdami scenarijų, būtinai sukurkite šį katalogą)

    Tai galite suplanuoti įtraukdami ją į crontab eilutę:

    crontab-e

    Pridėkite šią eilutę, kuri kas valandą veiks rsync 45 minučių ženklu. Pastebėsite, kad čia naudojamas visas kelias į rsync.

    45 * * * * / usr / bin / rsync -a [email protected]: / atsarginės kopijos / failai / * / offsitebackups /

    Galima suplanuoti jį paleisti kitaip, arba tik vieną kartą per dieną. Tai tikrai priklauso nuo jūsų.

    Atkreipkite dėmesį, kad yra daug įrankių, leidžiančių sinchronizuoti per ssh arba ftp. Jums nereikia naudoti rsync.

    Saugumas

    Pirmas dalykas, kurį norite padaryti, yra įsitikinti, kad turite reguliarų vartotojo abonementą, kurį norite naudoti per ssh, ir įsitikinkite, kad galite naudoti su perjungti į šaknį. Tai labai bloga idėja leisti tiesioginiam prisijungimui prie šaknies per ssh.

    Išjungti šakninį prisijungimą per SSH

    Redaguokite failą / etc / ssh / sshd_config ir ieškokite šios eilutės:

    #PermitRootLogin taip

    Pakeiskite šią eilutę, kad atrodytumėte taip:

    PermitRootLogin nr

    Įsitikinkite, kad turite reguliarų vartotojo abonementą ir galėsite įsišaknoti prieš atlikdami šį pakeitimą, kitaip galite užrakinti save.

    Išjungti SSH 1 versiją

    Nėra jokios priežasties naudoti nieko, išskyrus SSH 2 versiją, nes ji yra saugesnė nei ankstesnės versijos. Redaguokite failą / etc / ssh / sshd_config ir ieškokite sekančio skyriaus:

    2 protokolo 2 protokolas

    Įsitikinkite, kad naudojate tik 2 protokolą, kaip parodyta.

    Paleiskite SSH serverį iš naujo

    Dabar jums reikės iš naujo paleisti SSH serverį, kad jis įsigaliotų.

    /etc/init.d/sshd paleiskite iš naujo

    Patikrinkite, ar nėra atvirų uostų

    Jei norite pamatyti, kuriuos prievadus serveris klausosi, galite naudoti šią komandą:

    netstat -an | grep LISTEN

    Jums tikrai neturėtų būti nieko klausytis, išskyrus 22, 80 ir galbūt 8443 prievadus.

    Nustatykite užkardą

    Pagrindinis straipsnis: „Iptables“ naudojimas „Linux“

    Pasirinkę „iptables“ užkardą, galite blokuoti daugiau jungčių. Pvz., Paprastai užblokuoju prieigą prie kitų uostų, išskyrus mano darbo tinklą. Jei turite dinaminį IP adresą, norėsite išvengti šios parinkties.

    Jei iki šiol jau atlikote visus šiame vadove nurodytus veiksmus, tikriausiai nereikia pridėti ugniasienės prie mišinio, tačiau gerai suprasti savo parinktis.

    Taip pat žr

    • „Iptables“ naudojimas „Linux“

    Nuorodos

    • DV serverio optimizavimas (mediatemple.net)
    • XCache