12Sep
Keď získate špecializovaný virtuálny server na spustenie svojich webových stránok, je pravdepodobné, že sú nakonfigurované pre všetkých a nie sú prispôsobené na maximalizáciu výkonu pre spustenie webových stránok.
Obsah
|
Prehľad
Existuje niekoľko problémových oblastí,t pre maximalizáciu výkonu:
- Konfigurácia Linux
Bežne bežia služby, ktoré nemusia byť, plytvanie pamäťou, ktorá by mohla byť použitá pre viac pripojení. - konfigurácia MySQL
Často sú predvolené nastavenia založené na malom serveri, môžeme pridať niekoľko kľúčových zmien a zvýšiť výkonnosť veľa. - konfigurácia Apache
Väčšina hostiteľských poskytovateľov štandardne nainštaluje Apache s takmer každým inštalovaným modulom. Nie je žiadny dôvod na načítanie modulov, ak ich nikdy nebudete používať. - konfigurácia PHP
Predvolená konfigurácia PHP je podobne nafúknutá, zvyčajne je nainštalovaná tonu nepotrebných extra modulov. - PHP Opcode Cache
Namiesto toho, aby PHP mohol skompilovať skripty každú chvíľu, vyrovnávacej pamäte opcode budú uložené kompilované skripty v pamäti pre obrovské zvýšenie výkonu. - Zálohovanie
Pravdepodobne by sa mali nastaviť automatizované zálohy, pretože váš poskytovateľ hostingu to neurobí pre vás. Bezpečnosť -
Samozrejme, Linux je v predvolenom nastavení dostatočne bezpečný, ale zvyčajne existujú nejaké zrejmé problémy s bezpečnosťou, ktoré môžete opraviť niekoľkými rýchlymi nastaveniami. Konfigurácia
Linuxu
Je tu dosť vylepšení, ktoré môžete robiť, čo sa mierne líši v závislosti od servera, ktorý používate. Tieto vylepšenia sú pre server so systémom CentOS, ale mali by pracovať pre väčšinu DV serverov.
Zakázať DNS
Ak poskytovateľ hosťovania spravuje DNS pre vašu doménu( pravdepodobne), môžete vypnúť službu DNS.
vypnúť dns /etc/init.d/ názov stop chmod 644 /etc/init.d/ s názvomPríkaz chmod odstráni oprávnenie na vykonanie zo skriptu a zastaví ho pri spustení.
Zakázať SpamAssassain
Ak na svojom serveri nepoužívate e-mailové účty, nemali by ste obťažovať spustenie antispamových nástrojov.(Tiež by ste mali skontrolovať aplikácie Google Apps, oveľa lepšie e-mailové riešenie)
/etc/init.d/ psa-spamassassin stop chmod 644 /etc/init.d/ psa-spamassassinVypnúť xinetd
Proces xinetd obsahuje niekoľko ďalších procesov, z ktorých žiadny nie je užitočný pre typický webový server.
/etc/init.d/ xinetd stop chmod 644 /etc/init.d/ xinetdLimit Plesk Použitie pamäte
Ak použijete plesk panel, môžete ho nútiť, aby použil menej pamäte pridaním súboru možností.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeDo súboru pridajte nasledujúce riadky:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Všimnite si, že táto možnosť je známa tým, že pracuje na serveroch MediaTemple DV, ale nebola skontrolovaná na iných.(Pozri Referencie)
Vypnúť alebo Vypnúť Plesk( voliteľné)
Ak používate Plesk len raz ročne, je veľmi málo dôvodov, aby ste ho nechali bežať vôbec. Upozorňujeme, že tento krok je úplne nepovinný a o niečo pokročilejší.
Spustite nasledujúci príkaz na vypnutie plesk:
/etc/init.d/ psa stopMôžete ho vypnúť pri spustení pri spustení spustením nasledujúceho príkazu:
chmod 644 /etc/init.d/ psaVšimnite si, že ak ho vypnete, nemôžete ho spustiť manuálne bezzmena oprávnení súborov späť( chmod u + x).
Konfigurácia MySQL
Povolenie vyrovnávacej pamäte dotazu
Otvorte súbor my.cnf /etc/ a pridajte nasledujúce riadky do sekcie [mysqld] takto:
[mysqld] query-cache-type = 1 query-cache-size = 8Mpridajte do pamäte vyrovnávacej pamäte viac pamäte, ak chcete, ale nepoužívajte príliš veľa.
Vypnutie TCP / IP
Prekvapivý počet hostiteľov umožňuje predvolený prístup k MySQL na TCP / IP, čo nemá zmysel pre webové stránky. Môžete zistiť, či mysql počúva na TCP / IP spustením nasledujúceho príkazu:
netstat -an |grep 3306Ak chcete zakázať, pridajte nasledujúci riadok do vášho súboru my.cnf /etc/:
skip-networkingKonfigurácia Apache
Otvorte súbor httpd.conf, ktorý sa často nachádza v /etc/httpd/conf/ httpd.conf
Nájdite riadok, ktorý vyzerá takto:
Timeout 120A zmeňte to takto:
Timeout 20Teraz nájdete sekciu, ktorá obsahuje tieto riadky a nastavte na niečo podobné:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000Konfigurácia PHP
Jedna z vecíMajte na pamäti, že pri ladení servera na platforme PHP je, že každá apache vlákno bude načítať PHP na samostatnom mieste v pamäti. To znamená, že ak nepoužitý modul pridá 256 kB pamäte do PHP, cez 40 apache vlákien strácate 10 MB pamäte.
Odstrániť nepotrebné PHP moduly
Budete musieť vyhľadať súbor php.ini, ktorý sa zvyčajne nachádza na stránke /etc/ php.ini( V niektorých distribúciách bude adresár /etc/php.d/ s počtom súborov. ini, jeden prekaždý modul
Pripomíšte akékoľvek moduly loadmodule s týmito modulmi:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-loader
- json
- imap
- ldap
- ncurses
Todo: Viac informácií tu
PHP Opcode Cache
Tamsú početné vyrovnávacie pamäte operácií, ktoré môžete použiť, vrátane APC, eAccelerator a Xcache, pričom posledným z nich je moje osobné preferencie kvôli stabilite
Stiahnite si xcache a rozbaľte ho do adresára a potom spustite nasledovné príkazy z zdroja xcacheadresár:
phpize. /configure --enable-xcache make make installOtvorte súbor php.ini apridajte novú sekciu pre xcache. Ak sú vaše php moduly načítané z niekde inde, budete musieť upraviť cesty.
vi /etc/ php.iniDo súboru pridajte nasledujúcu sekciu:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];Zmena xcache.size vyladiť veľkosť vyrovnávacej pamäte opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Zmena xcache.var_size na úpravu veľkosti premennej vyrovnávacej pamäte 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 = Vypnuté xcache.readonly_protection =Na xcache.mmap_path = "/tmp/ xcache" xcache.ciredump_directory = "" xcache.cacher = Zapnuté xcache.stat = Zapnuté xcache.optimizer = VypnutéTodo: Potrebujete tento rozbaliť a odkazovať na xcache v referenciách. Zálohovanie
Je veľmi málo dôležitejšie ako automatické zálohovanie vašich webových stránok. Môžete mať možnosť získať zálohovanie snímok od vášho poskytovateľa hostingu, ktoré sú tiež veľmi užitočné, ale radšej tiež automatizované zálohovanie.
Vytvorte automatický zálohovací skript
Zvyčajne začínam vytváraním adresára / záloh s adresárom /backups/ pod ním. Tieto cesty môžete upraviť, ak chcete.
mkdir -p /backups/ súboryTeraz vytvorte skript backup.sh v adresári zálohovania:
vi /backups/ backup.shDo súboru pridajte nasledovné, upravte cestu a heslo mysqldump podľa potreby:
#!/bin/ sh THEDATE = `dátum +% 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/ my-web-cesta / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar nájsť /backups/files/ site * -mtime +5 -exec rm{ } \;nájsť /backups/files/ db * -mtime +5 -exec rm{ } \;Skript najprv vytvorí premennú dátumu, takže všetky súbory budú pomenované rovnaké pre jednu zálohu, potom skladujú databázu, vytrhávajú webové súbory a gzipsujú ich. Príkazy na vyhľadávanie sa používajú na odstránenie všetkých súborov starších ako 5 dní, pretože nechcete, aby sa vaša jednotka dostala do prázdna.
Vytvorte spustiteľný skript spustením nasledujúceho príkazu:
chmod u + x /backups/ backup.shĎalej budete musieť priradiť ho k automatickému spusteniu pomocou cron. Uistite sa, že používate účet, ktorý má prístup do adresára záloh.
crontab -eDo crontabu pridajte nasledujúci riadok:
1 1 * * * /backups/ backup.shSkript môžete otestovať vopred spustením pri prihlásení do užívateľského konta.(Zvyčajne spúšťam zálohy ako root)
Synchronizácia záloh mimo servera s Rsync
Teraz, keď máte automatizované zálohy vášho servera, môžete ich synchronizovať niekde inde pomocou nástroja rsync. Budete chcieť prečítať tento článok o tom, ako nastaviť ssh kľúče pre automatické prihlásenie: Pridajte verejné SSH kľúč k vzdialenému serveru v jedinom príkaze
Môžete to vyskúšať spustením tohto príkazu na linux alebo Mac na inom mieste( Imať linuxový server doma, čo je miesto, kde to spúšťam)
rsync -a [email protected]: /backups/files/ * /offsitebackups/Toto bude trvať dlho, kým sa spustí po prvýkrát, ale nakoniec by váš lokálny počítač mal mať kópiuadresára súborov v adresári /offsitebackups/.(Pred spustením skriptu nezabudnite vytvoriť tento adresár)
Môžete to naplánovať pridaním do riadku crontab:
crontab -ePridajte nasledujúci riadok, ktorý bude spustiť rsync každú hodinu pri značke 45 minút. Všimnete si, že tu používame úplnú cestu k rsync.
45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/Môžete naplánovať spustenie v inom čase alebo iba raz za deň.To je naozaj na vás.
Všimnite si, že existuje veľa nástrojov, ktoré vám umožnia synchronizáciu cez ssh alebo ftp. Nemusíte používať rsync. Zabezpečenie
Prvá vec, ktorú chcete urobiť, je zabezpečiť, aby ste mali bežný používateľský účet na použitie prostredníctvom ssh a uistite sa, že môžete použiť su na prepnutie na koreň.Je to veľmi zlý nápad povoliť priame prihlásenie pre root cez ssh.
Zakázať prihlásenie na koreň SSH
Upraviť súbor /etc/ssh/ sshd_config a vyhľadať nasledujúci riadok:
#PermitRootLogin ánoZmeňte tento riadok tak, aby vyzeral takto:
PermitRootLogin noUistite sa, že máte bežný používateľský účet a môžete suroot predtým, ako vykonáte túto zmenu, inak by ste sa mohli uzamknúť.
Zakázať SSH verziu 1
Naozaj neexistuje žiaden dôvod na použitie iného ako SSH verzie 2, pretože je bezpečnejší ako predchádzajúce verzie. Upravte súbor /etc/ssh/ sshd_config a vyhľadajte nasledujúcu sekciu:
# Protocol 2,1 Protocol 2Uistite sa, že používate iba protokol 2, ako je znázornené.
Reštartujte SSH server
Teraz budete musieť reštartovať server SSH, aby sa to stalo účinným.
/etc/init.d/ reštart sshdKontrola otvorených portov
Pomocou nasledujúceho príkazu môžete vidieť porty, na ktorých server počúva:
netstat -an |grep LISTENSkutočne by ste nemali mať nič iné počúvať ako porty 22, 80 a prípadne 8443 pre plesk.
Nastavenie brány firewall
Hlavný článok: Používanie Iptables na systéme Linux
Môžete voliteľne nastaviť firewall protokolu iptables na blokovanie ďalších pripojení.Napríklad zvyčajne zablokujem prístup k akýmkoľvek iným portom iným ako z mojej pracovnej siete. Ak máte dynamickú adresu IP, budete sa chcieť tejto možnosti vyhnúť.
Ak ste už všetky kroky v tejto príručke postupovali, pravdepodobne nie je potrebné pridávať do mixu aj firewall, ale je dobré porozumieť vašim možnostiam.
Pozri tiež
- Použitie Iptables v systéme Linux
Referencie
- Optimalizácia vášho DV servera( medatemple.net)
- XCache