Úvodná » ako » Vyladenie vyhradeného virtuálneho webového servera

    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ť]

    • 1 Prehľad
    • 2 Konfigurácia systému Linux
      • 2.1 Zakázať DNS
      • 2.2 Zakázať SpamAssassain
      • 2.3 Zakázať xinetd
      • 2.4 Použitie limitu pamäte Plesk
      • 2.5 Vypnúť alebo vypnúť Plesk (voliteľné)
    • 3 konfigurácia MySQL
      • 3.1 Povolenie vyrovnávacej pamäte dopytov
      • 3.2 Zakázať protokol TCP / IP
    • 4 Apache Configuration
    • 5 Konfigurácia PHP
      • Odstrániť nepotrebné PHP moduly
      • 5.2 PHP Opcode Cache
    • 6 Zálohy
      • 6.1 Vytvoriť automatický zálohovací skript
      • 6.2 Synchronizácia záloh mimo pracoviska pomocou služby Rsync
    • 7 Bezpečnosť
      • 7.1 Zakázať koreňové prihlásenie cez SSH
      • 7.2 Zakázať verziu SSH 1
      • 7.3 Reštartujte server SSH
      • 7.4 Skontrolujte otvorené porty
      • 7.5 Nastavenie brány firewall
    • 8 Pozri tiež
    • 9 Referencie

    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