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