Pühendatud virtuaalse veebiserveri näpistamine
Kui saate oma veebisaidi käivitamiseks spetsiaalse virtuaalse serveri, on tõenäoline, et see on kõigile konfigureeritud ja seda ei ole kohandatud veebisaidi käitamise maksimeerimiseks.
Sisu[peida]
|
Ülevaade
On mitmeid probleeme, kus me soovime maksimeerida jõudlust:
- Linuxi konfiguratsioon
Tavaliselt töötavad teenused, mis ei pea olema, raiskama mälu, mida saaks kasutada rohkemate ühenduste jaoks. - MySQL-i konfiguratsioon
Sageli põhinevad vaikeseaded väikesel serveril, saame lisada mõned olulised muudatused, et suurendada jõudlust. - Apache konfiguratsioon
Vaikimisi paigaldavad enamik hostiteenuse pakkujaid apache'i peaaegu iga paigaldatud mooduliga. Moduleid ei ole vaja laadida, kui te neid kunagi ei kasuta. - PHP konfiguratsioon
PHP-i vaikimisi konfigureerimine on sarnaselt ülespuhutud, tavaliselt on paigaldatud tonni tarbetuid lisamooduleid. - PHP Opcode vahemälu
Selle asemel, et võimaldada PHP-l skripte korduvalt kompileerida iga kord, salvestab opcode vahemälu mälus olevad kompileeritud skriptid suure jõudluse suurendamiseks. - Varukoopiad
Peaksid tõenäoliselt seadistama mõned automatiseeritud varukoopiad, kuna teie hostingu pakkuja ei kavatse seda teie jaoks teha. - Turvalisus
Kindlasti on Linux vaikimisi turvaline, kuid tavaliselt on mõned pimestavad turvaprobleemid, mida saate mõne kiire seadistusega parandada.
Linuxi konfiguratsioon
Seal on üsna palju tweaks saate teha, mis varieerub veidi sõltuvalt serveri kasutate. Need kõned on mõeldud serverile, mis töötab CentOSis, kuid need peaksid töötama enamiku DV-serverite puhul.
Keela DNS
Kui teie hostingu pakkuja haldab teie domeeni DNS-i (tõenäoliselt), saate DNS-teenuse keelata.
keelata dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Käsk chmod eemaldab skripti täitmisloa, peatades selle käivitamisel.
Keela SpamAssassain
Kui te ei kasuta oma serveris e-posti kontosid, ei tohiks te rämpsposti vastaseid tööriistu kasutada. (Samuti peaksite kontrollima Google'i rakendusi, palju paremat e-posti lahendust)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Keela xinetd
Protsessis xinetd on mitmeid teisi protsesse, millest ükski ei ole tüüpilise veebiserveri jaoks kasulik.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Piirata Pleski mälu kasutamist
Kui kasutate plesk-paneeli, võite sundida seda kasutama vähem mälu, lisades suvandfaili.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Lisage faili järgmised read:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Pange tähele, et see suvand on teadaolevalt MediaTemple DV-serverites töötav, kuid seda pole veel ühelgi teisel kontrollitud. (Vaata viiteid)
Pleski keelamine või väljalülitamine (valikuline)
Kui kasutate Pleskit ainult üks kord aastas, ei ole põhjust seda üldse kasutada. Pange tähele, et see samm on täiesti vabatahtlik ja veidi arenenum.
Käivitage järgmine käsk pleski väljalülitamiseks:
/etc/init.d/psa peatus
Saate selle käivitamisel käivitamisel keelata järgmise käsu:
chmod 644 /etc/init.d/psa
Pange tähele, et kui te selle keelate, ei saa te seda käsitsi käivitada ilma faililubade muutmata (chmod u + x).
MySQL-i seadistamine
Luba päringute vahemälu
Avage /etc/my.cnf fail ja lisage oma [mysqld] sektsiooni järgmised read:
[mysqld] query-cache-type = 1 päring-cache-size = 8M
Kui soovite, võite päringu vahemällu lisada rohkem mälu, kuid ärge kasutage liiga palju.
Keela TCP / IP
Üllatav hulk peremeesrühmi võimaldab juurdepääsu MySQL-ile TCP / IP-s vaikimisi, mis pole veebisaidi jaoks mõtet. Saate aru saada, kas mysql kuulab TCP / IP-d, käivitades järgmise käsu:
netstat -an | grep 3306
Keelamiseks lisage oma /etc/my.cnf failile järgmine rida:
vahelejätmine
Apache seadistamine
Avage oma httpd.conf-fail, mida sageli leiate aadressilt /etc/httpd/conf/httpd.conf
Leidke rida, mis näeb välja selline:
Timeout 120
Ja muuda seda sellele:
Timeout 20
Nüüd leiad jaotise, mis sisaldab neid ridu, ja kohandage midagi sarnast:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP seadistamine
Üks asi, mida meeles pidada, kui serverit PHP-platvormil on, on see, et iga apache niit laadib PHP-d üles eraldi mälus. See tähendab, et kui kasutamata moodul lisab PHP-le 256kb mälu, siis 40-le apache niidile raisatakse 10MB mälu.
Eemaldage mittevajalikud PHP moodulid
Peate leidma oma php.ini faili, mis tavaliselt asub aadressil /etc/php.ini (Pange tähele, et mõnede levituste puhul on /etc/php.d/ kataloog, millel on arv .ini faile, üks iga mooduli kohta.
Kommenteerige neid mooduleid sisaldavaid koormusmoodulite ridu:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-laadur
- Json
- imap
- ldap
- nursid
Todo: Lisage siit rohkem teavet.
PHP Opcode vahemälu
Kasutada saab arvukaid käskude vahemälusid, sealhulgas APC, eAccelerator ja Xcache, viimane on minu isiklik eelistus stabiilsuse tõttu.
Laadige xcache alla ja eraldage see kataloogi ning seejärel käivitage järgmised käsklused xcache lähtekataloogist:
phpize ./configure --enable-xcache make make install
Avage oma php.ini fail ja lisage uus jaotis xcache jaoks. Kui php moodulid on laaditud mujalt, peate te marsruute kohandama.
vi /etc/php.ini
Lisage faili järgmine lõik:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Muutke xcache.size, et häälestada opcode vahemälu suurus xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Muutke xcache.var_size muutuja vahemälu muutmiseks 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 = Väljas xcache.readonly_protection = On xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = Sisse xcache.optimizer = Väljas
Todo: Vajadus seda veidi laiendada ja lingida viitele xcache.
Varukoopiad
Seal on väga vähe tähtsam kui teie veebisaidi automaatse varukoopia tegemine. Võimalik, et saate oma hosting teenusepakkujalt varukoopiaid, mis on samuti väga kasulikud, kuid eelistan ka automatiseeritud varukoopiaid.
Looge automaatne varukript
Tavaliselt alustan kataloogi / varukoopia loomisega, mille all on / backups / files kataloog. Võite soovi korral neid teid muuta.
mkdir -p / varukoopiad / failid
Nüüd looge varukoopiate kataloogi varukoopia skript:
vi /backups/backup.sh
Lisage failile järgmine, kohandades vajadusel marsruute ja mysqldumpi parooli:
#! / bin / sh THEDATE = "kuupäev +% 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 leida / varukoopiaid / faile / saiti * -mtime +5 -exec rm \ t leida / varukoopiaid / faile / db * -mtime +5 -exec rm \ t
Skript loob kõigepealt kuupäeva muutuja, nii et kõik failid nimetatakse ühe varukoopia jaoks samaks, seejärel kaevatakse andmebaasi, tõmmatakse üles veebifailid ja neid gzipsitakse. Leia käske kasutatakse kõigi 5-päevaste vanemate failide eemaldamiseks, kuna te ei soovi, et teie kettaruumi tühjaks saaks.
Tehke skript käivitatavaks järgmise käsu abil:
chmod u + x /backups/backup.sh
Järgmine peate määrama selle automaatselt croni käivitamiseks. Veenduge, et kasutate kontot, millel on juurdepääs varukoopiate kataloogile.
crontab-e
Lisage crontabile järgmine rida:
1 1 * * * /backups/backup.sh
Skripti saate testida enne tähtaega, käivitades selle kasutajakontole sisselogimisel. (Tavaliselt töötan varukoopiaid rootina)
Sünkroonige varukoopiad väljaspool veebilehte Rsync
Nüüd, kui teil on oma serveri automaatne varukoopia, saate neid rsync utiliidi abil mujal sünkroonida. Te soovite lugeda seda artiklit selle kohta, kuidas ssh-võtmeid automaatse sisselogimise jaoks seadistada: lisage avaliku SSH-võti kaugserverisse ühe käsuga
Seda saab proovida, käivitades selle käsu linux- või Mac-seadmes mõnes muus kohas (mul on kodus linux-server, mis viib selle läbi)
rsync -a [email protected]: / varukoopiad / failid / * / offsitebackups /
See võtab aega esimest korda, kuid lõpuks peaks kohalikul arvutil olema failide kataloogi koopia / offsitebackups / kataloogis. (Enne skripti käivitamist looge kindlasti see kataloog)
Seda saab ajastada, lisades selle crontabi reale:
crontab-e
Lisage järgmine rida, mis käivitab rsync iga tunni järel 45-minutilise märgiga. Pange tähele, et me kasutame siin rsync'i täielikku teed.
45 * * * * / usr / bin / rsync -a [email protected]: / varukoopiad / failid / * / offsitebackups /
Saate selle ajastada ajastatud ajal või ainult üks kord päevas. See on sinust tõesti.
Pange tähele, et on palju utiliite, mis võimaldavad ssh või ftp kaudu sünkroonida. Te ei pea kasutama rsynci.
Turvalisus
Esimene asi, mida soovite teha, on veenduda, et teil on tavaline kasutajakonto, mida kasutada ssh kaudu, ning veenduge, et saate kasutada suu abil üleminekut. See on väga halb mõte lubada juurest otsest sisselogimist üle ssh.
Keela root sisselogimine üle SSH
Muutke / etc / ssh / sshd_config faili ja otsige järgmist rida:
#PermitRootLogin jah
Muutke seda rida, et see näeks välja:
PermitRootLogin nr
Veenduge, et teil on tavaline kasutajakonto ja saate enne muudatuse tegemist juurida, vastasel juhul võite ennast ise lukustada.
Keela SSH versioon 1
Ei ole mingit põhjust kasutada midagi muud kui SSH versioon 2, kuna see on turvalisem kui eelmised versioonid. Muutke / etc / ssh / sshd_config faili ja otsige järgmist jaotist:
Protokoll nr 2, protokoll nr 2
Veenduge, et kasutate ainult protokolli 2, nagu näidatud.
Taaskäivitage SSH-server
Nüüd peate selle SSH-serveri uuesti käivitama.
/etc/init.d/sshd taaskäivitage
Kontrollige avatud porte
Võite näha järgmist käsku, et näha, milliseid porte server server kuulab:
netstat -an | grep LISTEN
Sa ei tohiks tegelikult midagi muud kuulata peale sadamate 22, 80 ja võimaluse korral ka 8443.
Seadistage tulemüür
Peamine artikkel: Iptables'i kasutamine Linuxis
Saate soovi korral seadistada iptablesi tulemüüri, et blokeerida rohkem ühendusi. Näiteks blokeerin tavaliselt juurdepääsu muudele sadamatele peale oma töövõrgu. Kui teil on dünaamiline IP-aadress, siis soovite seda võimalust vältida.
Kui olete juba järginud kõiki käesoleva juhendi samme, ei ole ilmselt vajalik lisada tulemüüri segule, kuid on hea mõista teie võimalusi.
Vaata ka
- Iptables'i kasutamine Linuxis
Viited
- DV-serveri optimeerimine (mediatemple.net)
- XCache