12Sep

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

  • 1 Prehľad
  • 2 Konfigurácia Linuxu
    • 2.1 Vypnúť DNS
    • 2.2 Zakázať SpamAssassain
    • 2.3 Zakázať xinetd
    • 2.4 Limit Plesk Použitie pamäte
    • 2.5 Zakázať alebo vypnúť Plesk( voliteľné)
  • 3 Konfigurácia MySQL
    • 3.1 Povolenie vyrovnávacej pamäte dotazu
    • 3.2 Vypnutie TCP / IP
  • 4 Konfigurácia Apache
  • 5 Konfigurácia PHP
    • 5.1 Odstránenie nepotrebných PHP modulov
    • 5.2 PHP Opcode Cache
  • 6 Zálohovanie
    • 6.1 Vytvorenie automatizovaného zálohovacieho skriptu
    • 6.2 Synchronizácia záloh mimo servera s Rsync
  • 7 Zabezpečenie
    • 7.1 Zablokovanie koreňaPrihlásenie cez SSH
    • 7.2 Zakázať SSH verziu 1
    • 7.3 Reštart SSH servera
    • 7.4 Kontrola otvorených portov
    • 7.5 Nastavenie brány firewall
  • 8 Pozri tiež
  • 9 Referencie

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ázvom

Prí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-spamassassin

Vypnúť 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/ xinetd

Limit 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.include

Do súboru pridajte nasledujúce riadky:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Vš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 stop

Môžete ho vypnúť pri spustení pri spustení spustením nasledujúceho príkazu:

chmod 644 /etc/init.d/ psa

Vš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 = 8M

pridajte 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 3306

Ak chcete zakázať, pridajte nasledujúci riadok do vášho súboru my.cnf /etc/:

skip-networking

Konfigurá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 120

A zmeňte to takto:

Timeout 20

Teraz nájdete sekciu, ktorá obsahuje tieto riadky a nastavte na niečo podobné:

StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

Konfigurá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 install

Otvorte 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.ini

Do 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úbory

Teraz vytvorte skript backup.sh v adresári zálohovania:

vi /backups/ backup.sh

Do 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 -e

Do crontabu pridajte nasledujúci riadok:

1 1 * * * /backups/ backup.sh

Skript 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 -e

Pridajte 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 áno

Zmeňte tento riadok tak, aby vyzeral takto:

PermitRootLogin no

Uistite 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 2

Uistite 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 sshd

Kontrola otvorených portov

Pomocou nasledujúceho príkazu môžete vidieť porty, na ktorých server počúva:

netstat -an |grep LISTEN

Skutoč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