12Sep

Tvarkyti specialųjį virtualų žiniatinklio serverį

Kai gaunate specialųjį virtualų serverį, kad galėtumėte paleisti jūsų svetainę, yra tikimybė, kad ji yra sukonfigūruota visiems, o ne pritaikyta, siekiant padidinti svetainės veikimo našumą.

Turinys

[slė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 Įjungti užklausų talpyklą
    • 3.2 Išjungti TCP / IP
  • 4 Apache konfigūravimas
  • 5 PHP konfigūracija
    • 5.1 Pašalinti nereikalingus PHP modulius
    • 5.2 PHP opcode talpyklos
  • 6 Atsarginės kopijos
    • 6.1 Sukurti automatinį atsarginį scenarijų
    • 6.2 sinchronizuoti atsargines kopijas ne vietoje su Rsync
  • 7 Apsauga
    • 7.1 Išjungti šaknįPrisijungimas per SSH
    • 7.2 Išjunkite SSH versiją 1
    • 7.3 Iš naujo paleiskite SSH serverį
    • 7.4 Patikrinkite, ar atidarytos uostai
    • 7.5 Nustatykite užkardą
  • 8 Taip pat žr.
  • 9 Nuorodos

apžvalga

Yra keletas problemų zonų,t, kad maksimaliai padidėtų našumas:

  • Linux konfigūracija
    Paprastai yra naudojamos paslaugos, kurių nereikia, taupydama atminties, kuri gali būti naudojama daugiau ryšių.
  • MySQL konfigūracija
    Dažnai numatytieji nustatymai yra pagrįsti mažu serveriu, mes galime pridėti keletą pagrindinių pakeitimų, kad būtų galima daug padidinti našumą.
  • Apache konfigūracija
    Pagal nutylėjimą dauguma prieglobos paslaugų teikėjų įdiegia apache beveik kiekvieną modulį.Nėra jokios priežasties įkelti modulius, jei jūs jų niekada nenorite.
  • PHP konfigūracija
    Numatyta PHP konfigūracija taip pat yra išpūstos, paprastai yra įdiegta nereikalingų papildomų modulių tonų.
  • PHP "Opcode Cache"
    Vietoj to, kad PHP kiekvieną kartą galėtų pakartotinai kompiliuoti scenarijus, "opcode" talpyklė talpins atmintyje surinktus scenarijus į talpyklą, kad padidėtų našumas.
  • atsarginės kopijos
    Turbūt tikriausiai turėtumėte įdiegti automatines atsargines kopijas, nes jūsų prieglobos paslaugų teikėjas nesiruošia tai padaryti už jus.
  • Security
    Žinoma, pagal numatytuosius nustatymus "Linux" yra pakankamai saugi, tačiau paprastai yra keletas akivaizdžių saugumo problemų, kurias galite išspręsti keliais greitais nustatymais.

Linux konfigūravimas

Yra daugybė tweaks, kurias galite padaryti, kuri šiek tiek skirsis priklausomai nuo naudojamo serverio.Šie pakeitimai yra serveriui, kuriame veikia "CentOS", tačiau jie turėtų dirbti daugeliu DV serverių.

Išjungti DNS

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

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

Komandos chmod pašalina scenarijaus vykdymo leidimą, sustabdydamas jo paleidimą paleidžiant.

Išjunkite "SpamAssassain"

Jei nesinaudojate el. Pašto abonementais savo pačioje serveryje, neturėtumėte nerimauti, kad veiktų "anti-spam" įrankiai.(Taip pat turėtumėte patikrinti "Google Apps", gerokai patobulintą elektroninio pašto adresą)

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

Išjunkite xinetd

"xinetd" procese yra keletas kitų procesų, iš kurių nė vienas nėra naudingas įprastam žiniatinklio serveriui.

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

Apribota "Plesk" atminties naudojimas

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ą įrašykite šias eilutes:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Atkreipkite dėmesį, kad ši galimybė veikia "MediaTemple DV" serveriuose, bet nebuvo patikrinta kitose.(Žr. Nuorodas)

Išjungti arba išjungti Plesk( pasirinktinai)

Jei naudojate "Plesk" vieną kartą per metus, tai yra labai mažai priežasčių, kodėl ji vis tiek išlieka. Atminkite, kad šis žingsnis yra visiškai neprivalomas ir šiek tiek labiau pažengęs.

Vykdykite šią komandą išjungti plesk:

/etc/init.d/ psa sustabdyti

Galite išjungti jį paleisti paleidžiant paleisdami šią komandą:

chmod 644 /etc/init.d/ psa

Atminkite, kad jei jį išjungsite, tada negalėsite jį paleisti rankiniu būdu bekeiskite failo teises( chmod u + x).

MySQL konfigūravimas

Įgalinti užklausų talpyklą

Atidarykite savo /etc/ my.cnf failą ir pridėti šias eilutes į savo [mysqld] skyrių kaip šis:

[mysqld] query-cache-type = 1 query-cache-size = 8M

Jūs galiteJei norite, pridėkite daugiau atmintinės užklausos talpyklos, bet nenaudokite per daug.

Išjungti TCP / IP

Nenuostabu, kad kompiuterių skaičius įgalina prieigą prie "MySQL" pagal TCP / IP pagal nutylėjimą, o tai neturi jokios prasmės šiai svetainei. Galite išsiaiškinti, ar mysql klauso TCP / IP, paleisdamas šią komandą:

netstat -an |grep 3306

Norėdami išjungti, į savo /etc/ mano.cnf failą pridėkite šią eilutę:

skip-networking

Apache konfigūravimas

Atidarykite savo httpd.conf failą, dažnai randamą /etc/httpd/conf/ httpd.conf

Raskite eilutę, kuri atrodo taip:

Timeout 120

Pakeiskite jį taip:

Timeout 20

Dabar raskite skyrių, kuriame yra šios eilutės, ir pritaikykite kažką panašaus:

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

PHP konfigūracija

Viena iš dalykųTurėkite omenyje, kai optimizuodamas serverį PHP platformoje, kiekvienas apache srautas ketina įkelti PHP atskiroje atminties vietoje. Tai reiškia, kad jei nepanaudotas modulis prideda 256k atminties PHP, per 40 apache temas jūs išmesite 10 MB atminties.

Pašalinkite nereikalingus PHP modulius

Jums reikės surasti savo php.ini failą, kuris paprastai yra /etc/ php.ini( atkreipkite dėmesį, kad kai kuriuose distributiniuose bus /etc/php.d/ aplankas su keletu. ini failų, vienas skirtas. kiekvienas modulis

Komentuoti jokių LoadModule linijas su šių modulių:

  • ODBC
  • SNMP
  • SKVN
  • ODBC SKVN
  • mysqli
  • ionCube-krautuvas
  • JSON
  • IMAP
  • LDAP
  • ncurses

užduočių. Pridėti daugiau informacijos čia

PHP kodas operacijos talpyklos

Yrayra keletas opcode talpyklų, kuriuos galite naudoti, įskaitant APC, eAccelerator ir Xcache, o paskutinis yra mano asmeninis pasirinkimas dėl stabilumo.

Atsisiųskite xcache ir išskleiskite jį į katalogą ir paleiskite šias komandas iš xcache šaltiniokatalogas:

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

Atidarykite savo php.ini failą irpridėti naują skirsnį xcache. Jums reikės koreguoti kelius, jei jūsų php moduliai yra įkelti iš kažkur kitur.

vi /etc/ php.ini

Į šį failą įterpkite sekantį 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, norėdami nustatyti opcode talpyklos dydį 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 koreguotumėte kintamojo 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šjungti xcache.readonly_protection =Apie xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Apie xcache.stat = Apie xcache.optimizer = Išjungti

Todo: Reikia šiek tiek išplėsti ir nuorodą į xcache.

atsarginės kopijos

Yra labai mažai svarbiau nei automatizuotų jūsų svetainės atsarginių kopijų kūrimas. Galbūt galėsite gauti atsarginę kopijavimą iš savo prieglobos paslaugų teikėjo, kurie taip pat yra labai naudingi, bet aš taip pat norėčiau turėti automatines atsargines kopijas.

Sukurkite automatinį atsarginį scenarijų

Aš paprastai pradedu kurti katalogą / atsargines kopijas, po juo yra /backups/ failų katalogas. Galite koreguoti šiuos kelius, jei norite.

mkdir -p /backups/ failai

Dabar sukurkite backup.sh scenarijų atsarginių kopijų kataloge:

vi /backups/ backup.sh

Į failą pridėkite toliau nurodytus kelius ir mysqldump slaptažodį:

#!/bin/ sh THEDATE = 'date +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/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 /backups/files/ svetainę * -mtime +5 -exec rm() \;rasti /backups/files/ db * -mtime +5 -exec rm() \;

Šioje scenarijų pirmiausia sukuriamas datos kintamasis, taigi visi failai bus pavadinti vienu ir tuo pačiu vienu atsargine kopija, po to išmesti duomenų bazę, ištrinti žiniatinklio failus ir juos prisegti. Rasti komandas naudojamas pašalinti bet kokius failus, senesnes nei 5 dienas, nes nenorite, kad jūsų diskas paleistumėte vietą.

Sukurkite vykdomąjį scenarijų, paleisdami šią komandą:

chmod u + x /backups/ backup.sh

Tada jums reikės priskirti jį automatiškai paleisti cron.Įsitikinkite, kad naudojate paskyrą, kuri turi prieigą prie atsarginių kopijų katalogo.

crontab -e

Į crontab pridėkite šią eilutę:

1 1 * * * /backups/ backup.sh

Galite išbandyti scenarijų iš anksto, paleisdami jį prisijungdami prie vartotojo abonemento.(Aš dažniausiai paleisiu atsargines kopijas kaip root).

sinchronizuojamų atsarginių kopijų pašalinimas naudojant Rsync

. Dabar, kai turite veikiantį jūsų serverio automatizuotą atsarginę kopiją, galite sinchronizuoti juos kur nors kitur naudodami rsync įrankį.Jūs norėsite perskaityti šį straipsnį, kaip nustatyti automatinį prisijungimą naudodami ssh klavišus: pridėkite viešą SSH raktą į nuotolinę serverį vienoje komandoje

. Galite išbandyti šią komandą paleisti Linux ar Mac kitoje vietoje( Iturite linux serverį namuose, kuriame aš tai paleisčiau)

[email protected]: /backups/files/ * /offsitebackups/

Tai užtruks nemažai laiko, kol bus paleisti pirmą kartą, tačiau pabaigoje jūsų vietinis kompiuteris turi turėti kopijąfailų katalogo /offsitebackups/ kataloge.(Prieš paleidžiant scenarijų įsitikinkite, kad sukūrėte tą katalogą.)

Jūs galite suplanuoti tai pridedant prie crontab eilutės:

crontab -e

Pridėti šią eilutę, kuri kiekvieną valandą paleis rsync 45 minučių ženkle. Jūs pastebėsite, kad mes naudojame visą kelią į rsync čia.

45 * * * * /usr/bin/ [email protected]: /backups/files/ * /offsitebackups/

Galite planuoti, kad jis paleidžiamas kitokiu metu arba tik vieną kartą per dieną.Tai tikrai priklauso nuo tavęs.

Atminkite, kad yra daug komunalinių paslaugų, kurios leis jums sinchronizuoti per ssh arba ftp. Jums nereikia naudoti rsync.

Security

Pirmas dalykas, kurį norite atlikti, yra įsitikinti, kad turite įprastą vartotojo paskyrą, kad galėtumėte naudotis per ssh, ir įsitikinkite, kad galite naudoti su, kad pereitumėte į root. Tai labai blogai idėja leisti tiesioginį prisijungimą root iš ssh.

Išjungti šakninį prisijungimą per SSH

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

#PermitRootLogin taip

Pakeiskite šią eilutę taip:

PermitRootLogin no

Įsitikinkite, kad turite įprastą vartotojo paskyrą ir galite suroot, prieš tai atliksite šį pakeitimą, kitaip galite užsikimšti.

Išjunkite SSH versiją 1

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

#Protocol 2,1 Protokolas 2

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

Iš naujo paleiskite SSH serverį

Dabar reikės iš naujo paleisti SSH serverį, kad šis įsigalios.

/etc/init.d/ sshd restart

Patikrinkite, ar atvirosios prievados

Galite naudoti šią komandą, norėdami pamatyti, kuriuos serverius klauso:

netstat -an |grep LISTEN

Jūs neturėtumėte nieko klausytis, išskyrus uostus 22, 80 ir 8443 pleskui.

Nustatykite ugniasienę

Pagrindinis straipsnis: "Iptables" naudojimas Linux

Jūs galite pasirinktinai nustatyti iptables užkardą, kad užblokuotumėte daugiau ryšių.Pavyzdžiui, paprastai blokuoju prieigą prie kitų uostų, išskyrus iš savo darbo tinklo. Jei turite dinaminį IP adresą, jūs norėsite to išvengti.

Jei iki šiol jau vykdote visus šio vadovo veiksmus, tikriausiai nereikia papildyti ugniasienės mišiniui, bet gerai suprasti jūsų parinktis.

Taip pat žiūrėkite

  • "Iptables" naudojimas "Linux" sistemoje

Nuorodos

  • Optimizuokite savo DV serverį( mediatemple.net)
  • XCache