Vyladenie vyhradeného virtuálneho webového servera
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[Skryť]
|
Prehľad
Existuje množstvo problémových oblastí, v ktorých chceme maximalizovať výkonnosť:
- Konfigurácia systému Linux
Bežne prebiehajú bežné služby, ktoré nemusia byť, plytvanie pamäťou, ktorá by mohla byť použitá pre viac spojení. - Konfigurácia MySQL
Často sú predvolené nastavenia založené na malom serveri, môžeme pridať niekoľko kľúčových zmien na zvýšenie výkonnosti veľa. - Apache konfigurácia
V predvolenom nastavení väčšina poskytovateľov hostingu nainštaluje Apache s takmer každým inštalovaným modulom. Nie je dôvod na načítanie modulov, ak ich niekedy nebudete používať. - Konfigurácia PHP
Predvolená konfigurácia PHP je podobne nafúknutá, zvyčajne je tu nainštalovaná tonu nepotrebných ďalších modulov. - PHP Opcode Cache
Namiesto toho, aby PHP mohol skompilovať skripty každý čas, vyrovnávacej pamäte vo vyrovnávacej pamäti budú uložené kompilované skripty do pamäte pre obrovské zvýšenie výkonu. - zálohy
Mal by pravdepodobne nastaviť nejaké automatické zálohovanie, pretože váš poskytovateľ hostingu to nebude robiť pre vás. - zabezpečenia
Iste, Linux je v predvolenom nastavení dostatočne bezpečný, ale zvyčajne sa vyskytujú niektoré zrejmé problémy s bezpečnosťou, ktoré môžete opraviť niekoľkými rýchlymi nastaveniami.
Konfigurácia systému Linux
Je tu dosť vylepšení, ktoré môžete urobiť, č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/named stop chmod 644 /etc/init.d/named
Príkaz chmod odstráni povolenie vykonať zo skriptu a zastaví ho pri spustení.
Zakázať službu SpamAssassain
Ak na svojom serveri nepoužívate e-mailové účty, nemali by ste obťažovať spustenie antispamových nástrojov. (Tiež by ste sa mali pozrieť na Google Apps, oveľa lepšie e-mailové riešenie)
/etc/init.d/psa-spamassassin zastaviť chmod 644 /etc/init.d/psa-spamassassin
Zakázať xinetd
Proces xinetd obsahuje množstvo ďalších procesov, z ktorých žiadny nie je užitočný pre typický webový server.
/etc/init.d/xinetd zastaviť chmod 644 /etc/init.d/xinetd
Použitie obmedzenej pamäti Plesk
Ak používate plesk panel, môžete ho vynútiť, aby ste použili menej pamäte pridaním súboru možností.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Do súboru pridajte nasledujúce riadky:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Upozorňujeme, že je známe, že táto možnosť pracuje na serveroch MediaTemple DV, ale nebola skontrolovaná na žiadnych ďalších. (Pozri odkazy)
Zakázať 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 stop
Môžete vypnúť spustenie pri spustení spustením nasledujúceho príkazu:
chmod 644 /etc/init.d/psa
Všimnite si, že ak ho zakážete, nemôžete ho spustiť manuálne bez zmeny povolenia súboru (chmod u + x).
Konfigurácia MySQL
Povolenie vyrovnávacej pamäte dopytov
Otvorte súbor /etc/my.cnf a pridajte nasledujúce riadky do sekcie [mysqld] takto:
[mysqld] dotaz-cache-type = 1 query-cache-size = 8M
Ak chcete, môžete do vyrovnávacej pamäte dopytovať viac pamäte, ale nepoužívajte príliš veľa.
Zakázať protokol TCP / IP
Prekvapivý počet hostiteľov umožňuje štandardne 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 3306
Ak chcete zakázať, pridajte do súboru /etc/my.cnf nasledujúci riadok:
skip-sietí
Apache Configuration
Otvorte súbor httpd.conf, ktorý sa často nachádza v súbore /etc/httpd/conf/httpd.conf
Nájdite riadok, ktorý vyzerá takto:
Časový limit 120
A zmeňte to na toto:
Časový limit 20
Teraz nájdete sekciu, ktorá obsahuje tieto riadky a upravte na niečo podobné:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
Konfigurácia PHP
Jedna z vecí, ktorú je potrebné mať na pamäti pri ladení servera na platforme PHP, je to, že každá apache vlákno bude načítať PHP na samostatné miesto 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 súbore /etc/php.ini (V niektorých distribúciách sa bude nachádzať adresár /etc/php.d/ s počtom súborov .ini, jeden pre každý modul.
Komentujte akékoľvek loadmodule linky s týmito modulmi:
- ODBC
- snmp
- PDO
- odbc pdo
- mysqli
- Ioncube-nakladače
- json
- imap
- ldap
- ncurses
Todo: Viac informácií tu.
PHP Opcode Cache
Existuje niekoľko pamäťových cache, ktoré môžete použiť, vrátane APC, eAccelerator a Xcache, pričom posledným z nich je moje osobné preferencie kvôli stabilite.
Prevezmite xcache a extrahujte ho do adresára a potom spustite z príkazového adresára xcache nasledujúce príkazy:
phpize ./configure --enable-xcache vykonať inštaláciu
Otvorte súbor php.ini a pridajte novú sekciu pre xcache. Ak sú vaše php moduly načítané z niekde inde, budete musieť upraviť cesty.
vi /etc/php.ini
Do súboru pridajte nasledujúcu časť:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "Moje meno" xcache.admin.pass = "putanmd5hashhere" [xcache]; Zmeniť 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.coredump_directory = "" xcache.cacher = Zapnuté xcache.stat = Zapnuté xcache.optimizer = Vypnuté
Todo: Potrebujete toto rozšírenie trochu a odkaz na xcache v referenciách.
zálohy
Je veľmi málo dôležitejšie ako automatické zálohovanie vašich webových stránok. Možno budete môcť získať zálohovanie snímok od vášho poskytovateľa hostingu, ktoré sú tiež veľmi užitočné, ale radšej aj automatizované zálohy.
Vytvorte automatický zálohovací skript
Zvyčajne začínam vytváraním adresára / záloh s adresou / backups / files pod ním. Tieto cesty môžete upraviť, ak chcete.
mkdir -p / zálohy / súbory
Teraz vytvorte skript backup.sh v adresári záloh:
vi /backups/backup.sh
Pridajte do súboru nasledujúce údaje a podľa potreby upravte cestu a heslo mysqldump:
#! / bin / sh THEDATE = "dátum +% d% m% y% H% M" mysqldump -uadmin -password DATABASENAME> /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ť / zálohy / súbory / db * -mtime +5 -exec rm \;
Skript najprv vytvorí premennú dátumu, aby všetky súbory boli pomenované 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 z miesta.
Spustite spustiteľný skript spustením nasledujúceho príkazu:
chmod u + x /backups/backup.sh
Ďalej budete musieť priradiť automatické spúšťanie pomocou programu cron. Uistite sa, že používate účet, ktorý má prístup do adresára záloh.
crontab -e
Do crontabu pridajte nasledujúci riadok:
1 1 * * * /backups/backup.sh
Môžete otestovať skript 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 pracoviska pomocou služby 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ý kľúč SSH na vzdialený server v jedinom príkaze
Môžete to vyskúšať spustením tohto príkazu na linuxovom alebo Macovom počítači na inom mieste (mám linuxový server doma, kde som to spustil)
rsync -a [email protected]: / zálohy / súbory / * / offsitebackups /
Bude to chvíľu trvať, kým sa spustí po prvýkrát, ale nakoniec váš lokálny počítač má mať kópiu adresára súborov v adresári / offsitebackups /. (Pred vytvorením skriptu nezabudnite vytvoriť tento adresár)
Môžete to naplánovať pridaním do riadku crontab:
crontab -e
Pridajte nasledujúci riadok, ktorý bude spustiť rsync každú hodinu pri 45 minútach. Všimnite si, že tu používame úplnú cestu k rsync.
45 * * * * / usr / bin / rsync -a [email protected]: / zálohy / súbory / * / offsitebackups /
Môžete si ho naplánovať na spustenie v inom čase, alebo len raz za deň. To je naozaj na vás.
Upozorňujeme, že existuje veľa nástrojov, ktoré vám umožnia synchronizáciu prostredníctvom ssh alebo ftp. Nemusíte používať rsync.
zabezpečenia
Prvá vec, ktorú chcete urobiť, je ubezpečiť sa, že máte bežný používateľský účet, ktorý sa používa prostredníctvom ssh, a uistite sa, že môžete použiť su na prepnutie na koreň. Je to veľmi zlý nápad umožniť priame prihlásenie pre root cez ssh.
Zakázať koreňové prihlásenie cez SSH
Upravte súbor / etc / ssh / sshd_config a vyhľadajte nasledujúci riadok:
#PermitRootLogin áno
Zmeňte tento riadok takto:
PermitRootLogin č
Presvedčte sa, či máte pravidelné používateľské konto a či nemôžete root pred tým, než vykonáte túto zmenu, inak by ste sa mohli uzamknúť.
Zakázať SSH verziu 1
Naozaj neexistuje žiadny 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 časť:
#Protokol 2,1 Protokol 2
Uistite sa, že používate len protokol 2, ako je znázornené.
Reštartujte server SSH
Teraz budete musieť reštartovať server SSH, aby sa to stalo účinným.
/etc/init.d/sshd restart
Skontrolujte otvorené porty
Pomocou nasledujúceho príkazu môžete zistiť, na ktoré porty server počúva:
netstat -an | grep LISTEN
Skutočne by ste nemali mať nič iné počúvať ako prístavy 22, 80 a prípadne 8443 pre plesk.
Nastavte bránu firewall
Hlavný článok: Používanie aplikácie Iptables v systéme Linux
Môžete voliteľne nastaviť bránu firewall protokolu iptables na zablokovanie ďalších pripojení. Napríklad zvyčajne zablokujem prístup k ľubovoľným 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žívanie aplikácie Iptables v systéme Linux
Referencie
- Optimalizácia vášho DV servera (mediatemple.net)
- XCache