Kui veebisaidi käitamiseks saad spetsiaalse virtuaalse serveri, on tõenäoliselt hea, et see on kõigile seadistatud ja mitte kohandatud, et maksimeerida veebisaidi töökorras olekut.
Sisu[peida]
|
Ülevaade
Seal on mitmeid problemaatilisi valdkondi, kus me tahame maksimeerida jõudlust:
- Linuxi konfiguratsioon Tavaliselt toimivad teenused, mis ei pruugi olla, raiskab mälu, mida saaks kasutada rohkemate ühenduste jaoks.
- MySQLi konfiguratsioon Sageli põhinevad vaikeseaded väikesel serveril, saame lisada mõned võtmetegurid, et suurendada jõudlust.
- Apache'i konfiguratsioon Vaikimisi installeerib enamik hosting pakkujatest apache peaaegu iga installitud mooduli juurde. Moduleid ei ole vaja laadida, kui te neid kunagi ei kasuta.
- PHP konfiguratsioon Vaikimisi PHP-konfiguratsioon on sarnaselt paisunud, on tavaliselt paigaldatud ebavajalikke lisamooduleid.
- PHP opcode vahemälu Selle asemel, et lubada PHP igal ajal skripte uuesti kompileerida, tühjendab opcode vahemälu mälus kompileeritud skripte suureks jõudluse suurendamiseks.
- Varukoopiad Peaksite tõenäoliselt seadistama mõned automaatsed varukoopiad, kuna teie hostipakkuja ei kavatse seda teie jaoks teha.
- Turvalisus Muidugi, Linux on vaikimisi turvaline, kuid seal on tavaliselt mõningaid selgeid turvaprobleeme, mida saate parandada mõne kiire seadistusega.
Linuxi konfiguratsioon
Võimalik on teha üsna palju tweaks, mis sõltuvad kasutatavast serverist veidi. Need modifikatsioonid on mõeldud serverile, kus töötab CentOS, kuid nad peaksid töötama enamuse DV-serverite jaoks.
Keela DNS
Kui teie hostipakkuja tegeleb teie domeeni DNS-iga (võib-olla), saate DNS-teenuse keelata.
disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Chmod käsk eemaldab skriptist käsklitsentsi, peatades selle käivitumise käivitumisel.
Keela SpamAssassain
Kui te ei kasuta oma serveris oma e-posti kontosid, ei tohiks te vajate rämpsposti tööriistu. (Samuti peaksite kontrollima Google Appsi, palju paremat e-posti lahendust)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Keela xinetd
Xinetdi protsessis 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älukasutust
Kui kasutate pleski paneeli, võite sundida seda vähem mälu kasutama, lisades valikufaili.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Lisage failile järgmised read:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Pidage meeles, et see valik töötab MediaTemple DV-serverites, kuid seda ei ole kontrollitud ükski teine. (Vt viited)
Plesk välja lülitada või välja lülitada (valikuline)
Kui kasutate Pleski ainult kord aastas, siis on sellel väga vähe põhjust. Pange tähele, et see samm on täiesti valikuline ja veidi arenenud.
Pleski välja lülitamiseks käivitage järgmine käsk:
/etc/init.d/psa stop
Võite selle käivitamisel käivitamisel keelata, käivitades järgmise käsu:
chmod 644 /etc/init.d/psa
Pidage meeles, et kui see keelatakse, siis ei saa te seda käsitsi käivitada ilma failiõigusi tagasi muutmata (chmod u + x).
MySQLi konfiguratsioon
Luba päringu vahemälu
Ava oma fail /etc/my.cnf ja lisage oma [mysqld] jaotises järgmised read nii:
[mysqld] query-cache-type = 1 query-cache-size = 8M
Päringu vahemällu saate lisada, kui soovite, rohkem mälu, kuid ära kasuta liiga palju.
Keela TCP / IP
Üllatav hulk peremeesorganisatsioone lubab vaikimisi juurdepääsu TCP / IP-le MySQL-ile, mis ei ole veebilehe jaoks mõttekas. Võite aru saada, kas mysql kuulab TCP / IP-d, käivitades järgmise käsu:
netstat -an | grep 3306
Selle keelamiseks lisage oma failile /etc/my.cnf järgmine rida:
skip-networking
Apache seadistamine
Ava httpd.conf-fail, mida tihti leiab /etc/httpd/conf/httpd.conf
Leidke rida, mis näeb välja selline:
Timeout 120
Ja muudad seda:
Timeout 20
Nüüd leiate sektsiooni, mis sisaldab neid jooni ja kohandab midagi sarnast:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP konfiguratsioon
Üks asi, mida PHP platvormi serveri tutistamisel silmas pidades silmas pidada, on see, et iga apacheliit laadib PHP-i mällu eraldi asukohas. See tähendab, et kui kasutamata moodul lisab PHP-le 256-kordset mälu, siis on 40 vahemälu vahemikus 40 MB mälu raiskad.
Eemalda soovimatud PHP moodulid
Peate leidma oma php.ini-faili, mis on tavaliselt leitav aadressil /etc/php.ini (Pange tähele, et mõnel levitamisel on kataloogi /etc/php.d/ mitmete.ini failide kataloog üks iga mooduli kohta.
Kommenteerige välja kõik moodulite koormooduli read:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioonikube laadur
- json
- imap
- ldap
- ncurses
Todo: lisage lisateavet siit.
PHP opcode vahemälu
Seal on mitmeid opcode vahemällu, mida saate kasutada, sealhulgas APC, eAccelerator ja Xcache, millest viimane on minu isiklikud eelistused stabiilsuse tõttu.
Laadige xcache alla ja ekstraktige see kataloogi ja käivitage järgnevad käsklused xcache lähtekataloogist:
phpize./configure --enable-xcache make make install
Avage oma php.ini fail ja lisage uus osa xcache jaoks. Peate kohandama radu, kui teie php-moodulid laaditakse kuskilt mujale.
vi /etc/php.ini
Lisage failile järgmine jaotis:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = 'myusername' xcache.admin.pass = 'putanmd5hashhere' [xcache]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache 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 = Off xcache.readonly_protection = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off
Todo: Vajadus seda veidi laiendada ja linke xcache-le lisada.
Varukoopiad
Veebisaidi automatiseeritud varukoopiate tegemine on väga vähe tähtsam. Võimalik, et saate oma virtuaalserverite pakkujalt saada hetktõmmis varukoopiaid, mis on samuti väga kasulikud, kuid eelistan ka automaatset varundamist.
Loo automaatne varundamisskript
Ma alustan tavaliselt kataloogi / varukoopiate loomisega, mille all on / varukoopiad / failide kataloog. Kui soovite, saate neid radu kohandada.
mkdir -p /backups/files
Nüüd looge varukoopia kataloogi varukoopia.sh skript:
vi /backups/backup.sh
Lisage failile järgmine asukoht, kohandades tee ja mysqldump parooli vajadusel:
#!/bin/sh THEDATE=`date +%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 find /backups/files/site* -mtime +5 -exec rm {}; find /backups/files/db* -mtime +5 -exec rm {};
Skript loob esmakordselt kuupäeva muutuja, nii et kõik failid nimetatakse ühe varundamise jaoks samaks, seejärel laaditakse andmebaas välja, tühistatakse veebifailid ja neid gzipsitakse. Leidmiskäske kasutatakse vanemate kui 5 päeva vanuste failide eemaldamiseks, kuna te ei soovi, et teie kettaruum tühjaks jääks.
Käivitage skripti käivitatav käsk järgmiselt:
chmod u+x /backups/backup.sh
Järgmisena peate määrama selle automaatseks käitamiseks cron. Veenduge, et kasutate kontot, millel on juurdepääs varundamiste kataloogile.
crontab -e
Lisage crontabile järgmine rida:
1 1 * * * /backups/backup.sh
Saate proovida skripti õigel ajal, käivitades selle kasutajakonto sisselogimisel. (Ma käitan tavaliselt varukoopiaid rootina)
Sünkroonige varukoopiaid offsiteeris koos Rsynciga
Kui teil on serveri automaatne varundamine, saate seda sünkroonida kusagil mujal rsynci utiliidi abil. Soovite lugeda seda artiklit, kuidas seada ssh võtmed automaatseks sisselogimiseks: lisage serveri SSH-kopeerimine ühtsesse käsku
Seda saab testida, käivitades seda käsku linux või Mac-seadmes teises asukohas (mul on kodus linuxerver, kus ma seda käivitan)
rsync -a [email protected]:/backups/files/* /offsitebackups/
Selleks kulub mõni aeg esmakordselt käivitamiseks, kuid lõpuks peab teie kohalikul arvutil olema kataloogide / offsitebackups / kataloogi failide kataloogi koopia. (Veenduge, et loodud kataloog enne skripti käivitamist)
Selle saab planeerida, lisades sellele crontabi rida:
crontab -e
Lisage järgmine rida, mis käivitab rsync iga tunniga 45-minutilise märgi juures. Märkad, et me kasutame siin rsync täieliku tee.
45 * * * * /usr/bin/rsync -a [email protected]:/backups/files/* /offsitebackups/
Võiksite selle ajakava käivitada mõnel muul ajal või ainult üks kord päevas. See on sulle tõesti nii.
Pange tähele, et on palju rakendusi, mis võimaldavad teil sünkroonida ssh või ftp-ga. Te ei pea rsynci kasutama.
Turvalisus
Esimene asi, mida soovite teha, on veenduda, et teil on tavaline kasutajakonto, mida kasutada ssh-i kaudu, ja veenduge, et root suvalisse administraatorisse sisse lülitamiseks kasutaks su. See on väga halb mõte lubada otsest sisselogimist ssh juurutamiseks.
Keela Root Login üle SSH
Muutke / etc / ssh / sshd_config faili ja otsige järgmist rida:
#PermitRootLogin yes
Muuda seda rida järgmiselt:
PermitRootLogin no
Veenduge, et teil on tavapärane kasutajakonto ja su root võib olla enne selle muudatuse tegemist, vastasel juhul võite end lukustada.
Keela SSH versioon 1
Seal pole tõesti mingit põhjust kasutada muud kui SSH versiooni 2, sest see on turvalisem kui eelmised versioonid. Muuda faili / etc / ssh / sshd_config ja otsige järgmist sektsiooni:
#Protocol 2,1 Protocol 2
Veenduge, et kasutate ainult protokolli 2, nagu näidatud.
Taaskäivitage SSH server
Nüüd peate SSH serveri taaskäivitama, et see jõustuks.
/etc/init.d/sshd restart
Kontrollige avatud sadamate kasutamist
Saate kasutada järgmist käsku, et näha, millised porti server kuulab:
netstat -an | grep LISTEN
Teil ei tohiks midagi kuulata peale pleski portide 22, 80 ja 8443.
Tulemüüri häälestus
Peamine artikkel:Iptablesi kasutamine Linuxis
Saate valikuliselt seadistada iptablesi tulemüüri, et blokeerida rohkem ühendusi. Näiteks blokeerin tavaliselt juurdepääsu muule muule porti kui mu töövõrgust. Kui teil on dünaamiline IP-aadress, soovite seda võimalust vältida.
Kui olete siiani järginud kõiki selle juhendi samme, pole tõenäoliselt vaja segavale tulemüüri lisada, kuid mõistagi on teie võimalusi mõistlik.
Vaata ka
Iptablesi kasutamine Linuxis
Viited
- Teie DV-serveri (mediatemple.net) optimeerimine
- XCache