12Sep
Când beneficiați de un server virtual dedicat pentru a rula site-ul dvs., este posibil ca acesta să fie configurat pentru toată lumea și să nu fie personalizat pentru a maximiza performanța pentru rularea unui site Web.
Cuprins[ascunde]
|
Prezentare generală
Există o serie de domenii problematice în care vomt pentru a maximiza performanța:
- Configurația Linux
Există de obicei servicii de rulare care nu trebuie să fie, pierdeți memoria care ar putea fi utilizată pentru mai multe conexiuni. - Configurație MySQL
De obicei, setările implicite se bazează pe un server mic, putem adăuga câteva modificări cheie pentru a crește performanța mult mai mult. - Configurația Apache
În mod prestabilit, majoritatea furnizorilor de hosting instalează Apache cu aproape fiecare modul instalat. Nu există niciun motiv pentru a încărca module dacă nu le vei folosi vreodată. - configurație PHP
Configurația implicită PHP este în mod similar umflată, de obicei există o tonă de module suplimentare inutile instalate. - PHP Opcode Cache
În loc să permită PHP să recompileze scripturile de fiecare dată, un cache opcode va memora cache-urile compilate din memorie pentru o creștere imensă a performanței. - Backup-uri
Ar trebui să configureze, probabil, unele backup-uri automate, deoarece furnizorul dvs. de gazduire nu o va face pentru tine. - Securitate
Sigur, Linux este destul de sigur în mod implicit, dar de obicei există câteva probleme serioase de securitate pe care le puteți remedia cu câteva setări rapide.
Configurare Linux
Există destul de multe modificări pe care le puteți face, care vor varia ușor în funcție de serverul pe care îl utilizați. Aceste modificări sunt pentru un server care rulează CentOS, dar ar trebui să funcționeze pentru majoritatea serverelor DV.
Dezactivați DNS
Dacă furnizorul dvs. de găzduire se ocupă de DNS pentru domeniul dvs.( probabil), atunci puteți dezactiva funcționarea serviciului DNS.
dezactiva dns /etc/init.d/ numit stop chmod 644 /etc/init.d/ numitComanda chmod elimină permisiunea de executare din script, oprindu-l să ruleze la pornire.
Dezactivați SpamAssassain
Dacă nu utilizați conturi de e-mail pe serverul dvs. în sine, nu trebuie să vă deranjați să utilizați instrumentele anti-spam.(De asemenea, ar trebui să verificați Google Apps, soluție de e-mail mult mai bună)
/etc/init.d/ psa-spamassassin stop chmod 644 /etc/init.d/ psa-spamassassinDezactivați xinetd
Procesul xinetd găzduiește o serie de alte procese, dintre care nici unul nu este util pentru un server web tipic.
/etc/init.d/ xinetd stop chmod 644 /etc/init.d/ xinetdUtilizarea limitei de memorie Plesk
Dacă utilizați panoul de plesk, îl puteți forța să utilizeze mai puțină memorie prin adăugarea unui fișier de opțiuni.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeAdăugați următoarele linii în fișier:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Rețineți că această opțiune este cunoscută pentru a lucra pe serverele MediaTemple DV, dar nu a fost verificată pe niciun altul.(Vezi referințe)
Dezactivați sau dezactivați Plesk( opțional)
Dacă folosiți numai Plesk o dată pe an, există foarte puține motive să îl lăsați să ruleze deloc. Rețineți că acest pas este complet opțional și ușor mai avansat.
Rulați următoarea comandă pentru a dezactiva plesk:
/etc/init.d/ psa stopPuteți să-l dezactivați să ruleze la pornire executând următoarea comandă:
chmod 644 /etc/init.d/ psaRețineți că dacă îl dezactivați, atunci nu îl puteți porni manualschimbarea permisiunilor fișierului înapoi( chmod u + x).
Configurare MySQL
Activați Cache-ul de interogare
Deschideți fișierul my.cnf /etc/ și adăugați următoarele secțiuni în secțiunea [mysqld]:
[mysqld] query-cache-type = 1 interogare-cache-size = 8Madăugați mai multă memorie în cache-ul interogării dacă doriți, dar nu utilizați prea mult.
Dezactivați TCP / IP
Un număr surprinzător de gazde permite implicit accesul la MySQL pe TCP / IP, ceea ce nu are sens pentru un site web. Puteți afla dacă mysql ascultă pe TCP / IP executând următoarea comandă:
netstat -an |grep 3306Pentru a dezactiva, adăugați următoarea linie la fișierul my.cnf /etc/:
skip-networkingConfigurație Apache
Deschideți fișierul httpd.conf, găsit adesea în /etc/httpd/conf/ httpd.conf
Găsiți linia care arată astfel:
Timeout 120Și modificați-l la acesta:
Timeout 20Acum găsiți secțiunea care include aceste linii și se adaptează la ceva similar:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000Configurație PHP
Unul dintre lucrurile deține minte atunci când tweaking un server pe platforma PHP este că fiecare thread apache va încărca PHP într-o locație separată în memorie. Aceasta înseamnă că, dacă un modul neutilizat adaugă 256k de memorie la PHP, în peste 40 de fire apache pierziți 10MB de memorie.
Eliminați modulele PHP inutile
Va trebui să localizați fișierul php.ini, care de obicei se găsește la /etc/ php.ini( Rețineți că pe unele distribuții va fi un director /etc/php.d/ cu un număr de fișiere. ini, unul pentrufiecare modul
Comenteaza toate liniile loadmodule cu aceste module:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- încărcător de ioni
- json
- imap
- ldap
- ncurses
Todo: Adăugați mai multe informații aici
PHP Opcode Cache
sunt un număr de cache-uri opcode pe care le puteți utiliza, inclusiv APC, eAccelerator și Xcache, ultima fiind preferința mea personală datorită stabilității.
Descărcați xcache și extrageți-l într-un director și apoi executați următoarele comenzi din sursa xcachedirector:
phpize. /configure --enable-xcache face make installDeschideți fișierul php.ini șiadăugați o secțiune nouă pentru xcache. Va trebui să ajustați căile dacă modulele dvs. php sunt încărcate din altă parte.
vi /etc/ php.iniAdăugați următoarea secțiune în fișier:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "numele meu" xcache.admin.pass = "putanmd5hashhere"[xcache];Schimbați xcache.size pentru a ajusta dimensiunea cache-ului opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Modificați xcache.var_size pentru a ajusta dimensiunea cache-ului variabil 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 = Dezactivat xcache.readonly_protection =Pe xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Pe xcache.stat = Pe xcache.optimizer = DezactivatTodo: Trebuie să extindeți acest bit și să faceți legătura cu xcache în referințe.
Backup
Există foarte puțin mai important decât să aveți copii de rezervă automate ale site-ului dvs. Web. Este posibil să puteți obține copii de rezervă instantanee de la furnizorul dvs. de găzduire, care sunt, de asemenea, foarte utile, dar prefer să aibă backup automat.
Creați scriptul de backup automatizat
De obicei, încep prin crearea unui director / backups, cu un director de fișiere /backups/ sub el. Puteți modifica aceste căi dacă doriți.
mkdir -p /backups/ fișiereAcum creați un script backup.sh în directorul backups:
vi /backups/ backup.shAdăugați următoarele la fișier, ajustând căile și parola mysqldump după cum este necesar:
#!/bin/ sh THEDATE = 'data +% d% m% y% H% M` mysqldump -uadmin -PASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak tar -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ site-ul meu-path / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar găsi site-ul /backups/files/ * -mtime +5 -exec rm{ } \;găsi /backups/files/ db * -mtime +5 -exec rm{ } \;Scriptul va crea mai întâi o variabilă de dată, astfel încât toate fișierele vor fi numite aceleași pentru o singură copie de rezervă, apoi vor șterge baza de date, arhivează fișierele web și le vor gzipa. Comenzile de căutare sunt utilizate pentru a elimina orice fișiere mai vechi de 5 zile, deoarece nu doriți ca unitatea dvs. să nu se limiteze la spațiu.
Faceți scriptul executabil executând următoarea comandă:
chmod u + x /backups/ backup.shÎn continuare, va trebui să-l asignați să ruleze automat de către cron. Asigurați-vă că utilizați un cont care are acces la directorul de copii de siguranță.
crontab -eAdăugați următoarea linie la crontab:
1 1 * * * /backups/ backup.shAveți posibilitatea să testați script-ul în timp util executându-l în timp ce vă conectați la contul de utilizator.(De obicei, rularea copiilor de rezervă ca root)
Sincronizarea copiilor de rezervă în afara site-ului cu Rsync
Acum, când aveți copii de rezervă automate ale serverului dvs., puteți să le sincronizați în altă parte utilizând utilitarul rsync. Veți dori să citiți acest articol cu privire la modul de configurare a tastelor ssh pentru conectare automată: Adăugați cheia SSH publică la serverul de la distanță într-o comandă unică
Puteți testa acest lucru executând această comandă într-o mașină Linux sau Mac într-o altă locațieaveți un server linux la domiciliu, unde se execută acest lucru)
rsync -a [email protected]: /backups/files/ * /offsitebackups/Acest lucru va dura destul de mult pentru a rula prima dată, dar la final calculatorul local ar trebui să aibă o copiedin directorul de fișiere din directorul /offsitebackups/.(Asigurați-vă că ați creat acel director înainte de a rula scriptul)
Puteți programa acest lucru prin adăugarea lui la o linie crontab:
crontab -eAdăugați următoarea linie, care va rula rsync la fiecare oră la marcajul de 45 de minute. Veți observa că folosim calea completă la rsync aici.
45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/Puteți să-l programați să ruleze la un moment diferit sau o singură dată pe zi. Asta depinde de tine.
Rețineți că există o mulțime de utilitare care vă vor permite sincronizarea prin ssh sau ftp. Nu trebuie să utilizați rsync.
Securitate
Primul lucru pe care doriți să îl faceți este să vă asigurați că aveți un cont de utilizator obișnuit de folosit prin ssh și asigurați-vă că puteți utiliza su pentru a comuta la root. Este o idee foarte proastă să permiteți autentificarea directă pentru root peste ssh.
Dezactivați conectarea prin root peste SSH
Editați fișierul /etc/ssh/ sshd_config și căutați următoarea linie:
#PermitRootLogin daModificați acea linie să arate astfel:
PermitRootLogin nuAsigurați-vă că aveți un cont de utilizator obișnuit și că puteți surădăcină înainte de a face această schimbare, altfel s-ar putea să vă închideți.
Dezactivați SSH versiunea 1
Nu există nici un motiv să utilizați altceva decât SSH versiunea 2, deoarece este mai sigur decât versiunile anterioare. Editați fișierul /etc/ssh/ sshd_config și căutați următoarea secțiune:
# Protocol 2,1 Protocol 2Asigurați-vă că utilizați numai Protocolul 2 așa cum se arată.
Reporniți serverul SSH
Acum va trebui să reporniți serverul SSH pentru ca acest lucru să aibă efect.
/etc/init.d/ Restart sshdVerificați dacă porturile deschise
Puteți utiliza următoarea comandă pentru a vedea porturile pe care le asculte serverul:
netstat -an |grep LISTENNu ar trebui sa ai nimic altceva decat sa asculti porturile 22, 80 si eventual 8443 pentru plesk.
Configurarea unui firewall
Articolul principal: Utilizarea Iptables pe Linux
Puteți seta opțional un paravan de protecție iptables pentru a bloca mai multe conexiuni. De exemplu, de obicei, blochez accesul la alte porturi decât la rețeaua mea de lucru. Dacă aveți o adresă IP dinamică, veți dori să evitați această opțiune.
Dacă ați urmat deja toți pașii din acest ghid până acum, probabil că nu este necesar să adăugați un firewall la mix, dar este bine să înțelegeți opțiunile.
A se vedea de asemenea
- Utilizarea Iptables pe Linux
Referințe
- Optimizarea serverului dvs. DV( mediatemple.net)
- XCache