12Sep
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]
|
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/ pavadintasKomandos 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-spamassassinIš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/ xinetdApribota "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 5Atkreipkite 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 sustabdytiGalite išjungti jį paleisti paleidžiant paleisdami šią komandą:
chmod 644 /etc/init.d/ psaAtminkite, 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 = 8MJū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 3306Norėdami išjungti, į savo /etc/ mano.cnf failą pridėkite šią eilutę:
skip-networkingApache konfigūravimas
Atidarykite savo httpd.conf failą, dažnai randamą /etc/httpd/conf/ httpd.conf
Raskite eilutę, kuri atrodo taip:
Timeout 120Pakeiskite jį taip:
Timeout 20Dabar raskite skyrių, kuriame yra šios eilutės, ir pritaikykite kažką panašaus:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000PHP 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 installAtidarykite 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šjungtiTodo: 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/ failaiDabar 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.shTada 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.shGalite 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 -ePridė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 taipPakeiskite š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 restartPatikrinkite, ar atvirosios prievados
Galite naudoti šią komandą, norėdami pamatyti, kuriuos serverius klauso:
netstat -an |grep LISTENJū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