Domovská » jak » Vylepšení vyhrazeného virtuálního webového serveru

    Vylepšení vyhrazeného virtuálního webového serveru

    Když získáte vyhrazený virtuální server pro spuštění vašeho webu, je pravděpodobné, že je nakonfigurován pro všechny a není přizpůsoben tak, aby maximalizoval výkonnost při spouštění webových stránek.

    Obsah

    [skrýt]

    • 1 Přehled
    • 2 Konfigurace systému Linux
      • 2.1 Zakázat DNS
      • 2.2 Zakázat SpamAssassain
      • 2.3 Zakázat xinetd
      • 2.4 Použití limitu paměti Plesk
      • 2.5 Vypnout nebo vypnout Plesk (volitelně)
    • 3 Konfigurace MySQL
      • 3.1 Povolit mezipaměť dotazů
      • 3.2 Zakázat protokol TCP / IP
    • 4 Apache Configuration
    • 5 Konfigurace PHP
      • 5.1 Odstraňte nepotřebné PHP moduly
      • 5.2 PHP Opcode Cache
    • 6 Zálohování
      • 6.1 Vytvořit automatický zálohovací skript
      • 6.2 Synchronizace záloh mimo server s aplikací Rsync
    • 7 Zabezpečení
      • 7.1 Zakázat kořenové přihlášení přes SSH
      • 7.2 Zakázat SSH verze 1
      • 7.3 Restartujte server SSH
      • 7.4 Zkontrolujte otevřené porty
      • 7.5 Nastavení brány firewall
    • 8 Viz též
    • 9 Odkazy

    Přehled

    Existuje řada problémových oblastí, kde chceme maximalizovat výkon:

    • Konfigurace systému Linux
      Obvykle běží služby, které nemusí být, ztrácejí paměť, která by mohla být použita pro více připojení.
    • MySQL konfigurace
      Často jsou výchozí nastavení založená na malém serveru, můžeme přidat několik klíčových změn, abychom zvýšili výkon.
    • Apache konfigurace
      Ve výchozím nastavení většina poskytovatelů hostingu instaluje Apache s téměř každým nainstalovaným modulem. Neexistuje žádný důvod, jak načíst moduly, pokud je nebudete nikdy používat.
    • Konfigurace PHP
      Výchozí konfigurace PHP je podobně nafouknutá, obvykle je instalována řada dalších nepotřebných modulů.
    • PHP Opcode Cache
      Namísto toho, aby povolil PHP skompilovat skripty každou chvíli, mezipaměť opcode ukládá kompilované skripty do paměti v paměti pro obrovské zvýšení výkonu.
    • Zálohování
      Pravděpodobně byste měli nastavit automatizované zálohy, protože váš poskytovatel hostingu to nebude dělat za vás.
    • Bezpečnostní
      Jistě, Linux je ve výchozím nastavení dostatečně bezpečný, ale obvykle se vyskytují některé zřetelné bezpečnostní problémy, které můžete vyřešit pomocí několika rychlých nastavení.

    Konfigurace systému Linux

    Je tu spousta vylepšení, které můžete udělat, což se bude mírně lišit podle serveru, který používáte. Tyto vylepšení jsou pro server se systémem CentOS, ale měly by pracovat pro většinu DV serverů.

    Zakázat službu DNS

    Pokud váš poskytovatel hostingu zpracovává DNS pro vaši doménu (pravděpodobné), můžete zakázat spuštění služby DNS.

    zakázat dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    Příkaz chmod odebere ze skriptu oprávnění ke spuštění a zastaví jej spuštění při spuštění.

    Zakázat SpamAssassain

    Pokud na svém serveru nepoužíváte e-mailové účty, neměli byste obtěžovat běh antispamových nástrojů. (Měli byste se také podívat na Google Apps, mnohem lepší e-mailové řešení)

    /etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin

    Zakázat xinetd

    Proces xinetd obsahuje řadu dalších procesů, z nichž žádný není užitečný pro typický webový server.

    /etc/init.d/xinetd zastavení chmod 644 /etc/init.d/xinetd

    Limit Plesk Použití paměti

    Použijete-li plesk panel, můžete ho přinutit k použití méně paměti přidáním souboru možností.

    vi /usr/local/psa/admin/conf/httpsd.custom.include

    Do souboru přidejte následující řádky:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Všimněte si, že je známo, že tato možnost pracuje na serverech MediaTemple DV, ale nebyla zaškrtnuta žádná další. (Viz odkazy)

    Vypnout nebo vypnout Plesk (volitelně)

    Používáte-li Plesk pouze jednou za rok, je velmi málo důvodů, aby to vůbec nešlo. Všimněte si, že tento krok je zcela volitelný a poněkud pokročilejší.

    Spusťte následující příkaz pro vypnutí plesk:

    /etc/init.d/psa stop

    Můžete vypnout spuštění při spuštění spuštěním následujícího příkazu:

    chmod 644 /etc/init.d/psa

    Všimněte si, že pokud ji deaktivujete, nelze jej spustit ručně bez změny oprávnění k souboru (chmod u + x).

    Konfigurace MySQL

    Povolit mezipaměť dotazů

    Otevřete soubor /etc/my.cnf a přidejte následující řádky do oddílu [mysqld] takto:

    [mysqld] dotaz-cache-type = 1 query-cache-size = 8M

    Pokud chcete, můžete do mezipaměti dotazů přidat více paměti, ale nepoužívejte příliš mnoho.

    Zakázat protokol TCP / IP

    Překvapivý počet hostitelů umožňuje standardně přístup k MySQL ve formátu TCP / IP, což pro web nemá žádný smysl. Můžete zjistit, zda mysql naslouchá na TCP / IP spuštěním následujícího příkazu:

    netstat -an | grep 3306

    Chcete-li zakázat, přidejte do souboru /etc/my.cnf následující řádek:

    skip-networking

    Apache Configuration

    Otevřete soubor httpd.conf, který se často nachází v souboru /etc/httpd/conf/httpd.conf

    Najít řádek, který vypadá takto:

    Časový limit 120

    A změňte to na toto:

    Časový limit 20

    Nyní najdete sekci, která obsahuje tyto řádky a upravte na něco podobného:

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

    Konfigurace PHP

    Jednou z věcí, které je třeba mít na paměti při ladění serveru na platformě PHP, je to, že každý podproces apache si načte PHP na samostatném místě v paměti. To znamená, že pokud nepoužitý modul přidá do PHP 256k paměti, napříč 40 vláknam apache ztrácíte 10MB paměti.

    Odebrat nepotřebné PHP moduly

    Budete muset najít soubor php.ini, který se obvykle nachází na souboru /etc/php.ini (V některých distribucích se objeví adresář /etc/php.d/ s množstvím souborů .ini, jeden pro každý modul.

    Všimněte si jakýchkoli modulů loadmodule s těmito moduly:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • ioncube-loader
    • json
    • imap
    • ldap
    • ncurses

    Todo: Přidejte další informace zde.

    PHP Opcode Cache

    Existuje řada opcode cache, které můžete použít, včetně APC, eAccelerator a Xcache, poslední je moje osobní preference kvůli stabilitě.

    Stažení xcache a jeho extrahování do adresáře a spuštění následujících příkazů z adresáře zdroj xcache:

    phpize ./configure --enable-xcache proveďte instalaci

    Otevřete soubor php.ini a přidejte novou sekci pro xcache. Budete muset upravovat cesty, pokud jsou vaše php moduly načteny někde jinde.

    vi /etc/php.ini

    Do souboru přidejte následující část:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "Moje jméno" xcache.admin.pass = "putanmd5hashhere" [xcache]; Změňte velikost xcache.size tak, abyste vyladili velikost mezipaměti opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Změna xcache.var_size pro úpravu velikosti proměnné vyrovnávací paměti 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 = Vypnuto xcache.readonly_protection = Na xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Zapnuto xcache.stat = Zapnuto xcache.optimizer = Vypnuto

    Todo: Potřebujete toto rozšířit trochu a odkaz na xcache v odkazu.

    Zálohování

    Je to mnohem důležitější než automatické zálohování vašich webových stránek. Možná budete mít možnost získat zálohy zálohování od poskytovatele hostingu, které jsou také velmi užitečné, ale dávám přednost automatickému zálohování.

    Vytvořte automatický zálohovací skript

    Obvykle začínám vytvářením adresáře / zálohami s adresářem / backups / files pod ním. Tyto cesty můžete upravit, pokud chcete.

    mkdir -p / zálohy / soubory

    Nyní vytvořte skript backup.sh v adresáři záloh:

    vi /backups/backup.sh

    Přidejte do souboru následující údaje a podle potřeby upravte cestu a heslo mysqldump:

    #! / bin / sh THEDATE = "datum +% 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 najít / zálohy / soubory / stránky * -mtime +5 -exec rm  \; najít / zálohy / soubory / db * -mtime +5 -exec rm  \;

    Skript nejprve vytvoří datovou proměnnou, takže všechny soubory budou pojmenovány pro jednu zálohu stejným způsobem, poté skladují databázi, vytrhnou webové soubory a zkopírují je. Nálezové příkazy se používají k odstranění všech souborů starších než 5 dní, protože nechcete, aby se vaše zařízení dostala z místa.

    Udělat skript spustitelný spuštěním následujícího příkazu:

    chmod u + x /backup/backup.sh

    Poté budete muset přiřadit, aby se automaticky spouštěl serverem cron. Ujistěte se, že používáte účet, který má přístup do adresáře záloh.

    crontab -e

    Přidejte následující řádek do crontabu:

    1 1 * * * /backups/backup.sh

    Skript můžete předem otestovat spuštěním při přihlášení k uživatelskému účtu. (Obvykle běží zálohy jako root)

    Synchronizace záloh mimo server pomocí služby Rsync

    Nyní, když máte automatizované zálohy serveru, můžete je synchronizovat někde jinde pomocí nástroje rsync. Budete chtít přečíst tento článek o tom, jak nastavit ssh klíče pro automatické přihlášení: Přidat veřejné SSH klíče vzdáleného serveru v jediném příkazu

    Můžete to vyřešit spuštěním tohoto příkazu na linuxu nebo počítači Mac na jiném místě (mám linuxový server doma, kde je spuštěn)

    rsync -a [email protected]: / zálohy / soubory / * / offsitebackups /

    Bude to trvat poměrně dlouho, než se poprvé spustí, ale na konci by váš lokální počítač měl mít kopii adresáře souborů v adresáři / offsitebackups /. (Před vytvořením skriptu nezapomeňte vytvořit tento adresář)

    Můžete jej naplánovat přidáním do řádku crontab:

    crontab -e

    Přidejte následující řádek, který bude spouštět rsync každou hodinu za 45 minutovou značku. Všimnete si, že zde používáme úplnou cestu k rsync.

    45 * * * * / usr / bin / rsync -a [email protected]: / zálohy / soubory / * / offsitebackups /

    Můžete jej naplánovat, aby běžel v jiném čase, nebo jen jednou denně. To je opravdu na vás.

    Všimněte si, že existuje mnoho nástrojů, které vám umožní synchronizovat pomocí ssh nebo ftp. Nemusíte používat rsync.

    Bezpečnostní

    První věc, kterou chcete udělat, je ujistit se, že máte běžný uživatelský účet pro používání ssh a ujistěte se, že můžete použít su pro přepnutí na root. Je to velmi špatný nápad povolit přímý login pro root přes ssh.

    Zakázat kořenové přihlášení přes SSH

    Upravte soubor / etc / ssh / sshd_config a vyhledejte následující řádek:

    #PermitRootLogin ano

    Změňte tento řádek takto:

    PermitRootLogin no

    Ujistěte se, že před tím, než provedete tuto změnu, máte běžný uživatelský účet a můžete ji root root, jinak byste se mohl uzamknout.

    Zakázat SSH verze 1

    Ve skutečnosti není žádný důvod použít jinou než SSH verze 2, protože je bezpečnější než předchozí verze. Upravte soubor / etc / ssh / sshd_config a vyhledejte následující část:

    #Protokol 2,1 Protokol 2

    Ujistěte se, že používáte protokol 2 pouze podle obrázku.

    Restartujte server SSH

    Nyní budete muset restartovat server SSH, aby se tato skutečnost projevila.

    /etc/init.d/sshd restart

    Zkontrolujte, zda jsou otevřené porty

    Pomocí následujícího příkazu můžete zjistit, které porty poslouchá server:

    netstat -an | grep LISTEN

    Opravdu byste neměli mít nic jiného než poslouchat jiné než porty 22, 80 a možná 8443 pro plesk.

    Nastavení brány firewall

    Hlavní článek: Používání Iptables v systému Linux

    Volitelně můžete nastavit bránu firewall iptables, která blokuje další připojení. Například obvykle zablokuji přístup k jiným portům než k mé pracovní síti. Pokud máte dynamickou adresu IP, budete se chtít této možnosti vyhnout.

    Pokud jste již všechny kroky v této příručce již postupovali, pravděpodobně není nutné do mixu přidat také firewall, ale je dobré pochopit vaše možnosti.

    Viz též

    • Používání Iptables v systému Linux

    Reference

    • Optimalizace vašeho DV serveru (mediatemple.net)
    • XCache