12Sep
Ha dedikált virtuális kiszolgálót kap a webhelyének futtatásához, akkor jó esély van rá, hogy mindenki számára konfigurálva legyen, és ne szabja meg a weboldal futtatásához szükséges teljesítmény maximalizálását.
Tartalom[hide]
|
Áttekintés
Van egy számahol a teljesítményt maximalizálni szeretnénk:
- Linux konfiguráció
Általában olyan szolgáltatások futnak, amelyeknek nem kell lenniük, a memória elvesztése, amely több kapcsolatra is használható. - MySQL-konfiguráció
Gyakran az alapértelmezett beállítások egy kis szerveren alapulnak, néhány kulcsfontosságú változtatással növelhetjük a teljesítményt. - Apache konfiguráció
Alapértelmezés szerint a legtöbb tárhelyszolgáltató telepíti az apache-t majdnem minden telepített modullal. Nincs ok arra, hogy betöltsük a modulokat, ha mégsem használjuk őket. - PHP konfiguráció
Az alapértelmezett PHP-konfiguráció hasonlóan felfúvódott, általában több felesleges extra modul telepítve van. - PHP Opcode gyorsítótár
Ahelyett, hogy a PHP-nek minden alkalommal újrafordítaná a parancsfájlokat, az opcode gyorsítótár gyorsítótárat gyűjti össze a memóriában a fordított szkripteket a hatalmas teljesítményjavításokért. - Biztonsági mentések
Valószínűleg fel kell állítania az automatizált biztonsági mentéseket, mivel a tárhelyszolgáltatója nem fogja megtenni az Ön számára. - Security
Biztos, hogy a Linux alapértelmezés szerint elég biztonságos, de általában néhány fényes biztonsági probléma van, amelyet néhány gyors beállítással javíthat.
Linux konfiguráció
Van egy csomó csípés amit tehetsz, ami kissé eltérhet a használt szerver alapján. Ezek a tweaks egy CentOS-t futtató kiszolgálóra vonatkoznak, de a DV-szerverek többségére kell dolgozniuk.
Letiltja a DNS-t
Ha a tárhely szolgáltató valószínűleg kezeli a domain DNS-jét, akkor letilthatja a DNS szolgáltatást a futásból.
letiltása dns /etc/init.d/ megnevezett stop chmod 644 /etc/init.d/ nevűA chmod parancs eltávolítja a parancsfájl végrehajtási engedélyét, és megakadályozza az indításkor futó parancsot.
A SpamAssassain
tiltása Ha nem ön e-mail fiókokat használ a kiszolgálón, akkor ne zavarja a levélszemét-blokkoló eszközök futtatását.(Szintén meg kell nézni a Google Apps, sokkal jobb e-mail megoldás)
/etc/init.d/ psa-spamassassin stop chmod 644 /etc/init.d/ psa-spamassassinLetiltása xinetd
A xinetd folyamat számos más folyamatot foglal magában, amelyek közül egyik sem hasznos egy tipikus webszerver számára.
/etc/init.d/ xinetd stop chmod 644 /etc/init.d/ xinetdKorlátozza a Plesk memória használatát
Ha használja a plesk panelt, kényszerítheti arra, hogy kevesebb memóriát használjon opciófájl hozzáadásával.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeAdja hozzá a következő sorokat a fájlhoz:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Megjegyezzük, hogy ez a lehetőség ismert, hogy MediaTemple DV szervereken dolgozik, de másokat nem ellenőriztek.(Lásd Referenciák)
Plesk letiltása vagy kikapcsolása( opcionális)
Ha éppen csak egyszer használja a Plesk-et, akkor nagyon kevés oka van arra, hogy egyáltalán futjon. Ne feledje, hogy ez a lépés teljesen opcionális, és kissé fejlettebb.
A plesk kikapcsolásához hajtsa végre a következő parancsot:
/etc/init.d/ psa stopA következő parancs futtatásával letilthatja az indításkor történő futtatását:
chmod 644 /etc/init.d/ psaMegjegyzés: ha letiltja, akkor nem indíthatja el manuálisan anélkül, hogya fájlengedélyek visszaállítása( chmod u + x).
MySQL konfiguráció
Engedélyezze a lekérdezési gyorsítótárat
Nyissa meg az /etc/ my.cnf fájlját, és adja hozzá a következő sort a [mysqld] szakaszban:
[mysqld] query-cache-type = 1 lekérdezés-cache-size = 8Mha szeretnéd, akkor még több memóriát adhatsz a lekérdezési gyorsítótárhoz, de ne használj túl sokat.
A TCP / IP letiltása
A meglepő számú házigazdák alapértelmezés szerint hozzáférést biztosítanak a TCP / IP-hez a MySQL-hez, így nincs értelme egy webhely számára. Kiderül, hogy a mysql a TCP / IP-en hallgatja-e a következő parancsot:
netstat -an |grep 3306A letiltáshoz az /etc/ my.cnf fájlhoz adja ki a következő sort:
ugrás-hálózatApache konfiguráció
Nyissa meg a httpd.conf fájlt, amely gyakran megtalálható az /etc/httpd/conf/-ben httpd.conf
Keresse meg a következő sort:
Timeout 120És változtassa meg ezt:
Időzítés 20Most keresse meg a következő sorokat tartalmazó részeket, és állítson be valamilyen hasonlóra:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000PHP konfiguráció
Az egyik dolog, Ne felejtsd el, amikor a PHP platformon egy kiszolgálót be kell csípni, hogy minden egyes apache szál betöltse a PHP-t egy külön helyre a memóriában. Ez azt jelenti, hogy ha egy fel nem használt modul 256 k memóriát ad hozzá PHP-nek, 40 apache szálon keresztül 10 MB memóriát veszít.
Szükségtelen PHP modulok eltávolítása
Meg kell találnia a php.ini fájlt, amely rendszerint az /etc/ php.ini fájlban található meg.( Vegye figyelembe, hogy bizonyos terjesztéseknél egy /etc/php.d/ könyvtár is található.minden modul.
Megjegyzés bármilyen LoadModule sorok ezek a modulok:
- odbc
- SNMP
- pdo
- odbc pdo
- mysqli
- ioncube-rakodó
- jSON
- imap
- ldap
- ncurses
Todo: Hozzáadás további információk itt.
PHP Opcode gyorsítótár
vanszámos opcode cache-t használhat, beleértve az APC-t, az eAcceleratorot és az Xcache-et, az utolsó az én személyes preferencia a stabilitás miatt
Töltse le az xcache fájlt, és vegye ki egy könyvtárba, majd futtassa az alábbi parancsokat az xcache forrásbólkönyvtár:
phpize. /configure --enable-xcache make make installNyissa meg a php.ini fájlt ésadj hozzá egy új szakaszt az xcache számára. Be kell állítania az elérési útvonalakat, ha a php moduljait valahol máshol tölti be.
vi /etc/ php.iniAdja hozzá a következő szakaszt a fájlhoz:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "felhasználónevem" xcache.admin.pass = "putanmd5hashhere"[xcache];Xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Az xcache.var_size változó módosítása a változó gyorsítótár méretének beállításához 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 = Off xcache.readonly_protection =Az xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = A xcache.optimizer = KiTodo: Kell bővíteni ezt a fájlt és hivatkozni az xcache-re a hivatkozásokban.
Biztonsági mentések
Nagyon kevésbé fontos, mint a weboldal automatikus biztonsági mentése. Előfordulhat, hogy pillanatfelvétel-készpénzfelvételeket készíthet a tárhelyszolgáltatójáról, amelyek szintén nagyon hasznosak, de jobban szeretem az automatikus biztonsági másolatokat is.
Automata biztonsági másolat készítése
Általában elindítom a / backups könyvtár létrehozását, az alatta lévő /backups/ fájlok könyvtárával. Beállíthatja ezeket az útvonalakat, ha akarja.
mkdir -p /backups/ fájlokMost hozzon létre egy backup.sh parancsfájlt a biztonsági mentések könyvtárába:
vi /backups/ backup.shAdja hozzá a következő fájlt, állítsa be az útvonalakat és a mysqldump jelszót szükség szerint:
#!/bin/ sh THEDATE = `dátum +% d% m% y% H% M mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak tar -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ my-site-path / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar talál /backups/files/ webhely * -mtime +5 -exec rm{ } \;találja meg az /backups/files/ db * -mtime +5 -exec rm{ } \;A parancsfájl először létrehoz egy dátumváltozót, így az összes fájl ugyanazt fogja megnevezni egyetlen mentéshez, majd eldobja az adatbázist, feltölti a webes fájlokat, és gzipeli őket. A keresési parancsok 5 napnál régebbi fájlok eltávolítására használhatók, mivel nem szeretné, hogy a meghajtó kifogyjon a helyről.
Végezze el a parancsfájl futtatását a következő parancs futtatásával:
chmod u + x /backups/ backup.shEzután hozzá kell rendelnie ahhoz, hogy a cron automatikusan futtassa. Győződjön meg arról, hogy olyan fiókot használ, amely hozzáférést biztosít a biztonsági mentésekhez.
crontab -eAdja hozzá a következő sort a crontab-hoz:
1 1 * * * /backups/ backup.shA szkriptet előzetesen tesztelheti, ha bejelentkezik a felhasználói fiókra.(Rendszeresen futtatom a biztonsági másolatokat rootként)
Szinkronizálás a helyszínen az Rsync
segítségével A kiszolgáló automatizált biztonsági mentései után rsync segédprogrammal szinkronizálhatja őket valahol máshol. Szeretné elolvasni ezt a cikket az ssh-kulcsok automatikus beállításához: Adja hozzá a nyilvános SSH kulcsot a távoli kiszolgálóhoz egyetlen parancsban
Ezt a parancsot futtathatja egy linuxos vagy Mac-gépen egy másik helyen( Ilinuxos kiszolgáló van otthon, ahol itt futtatom)
rsync -a [email protected]: /backups/files/ * /offsitebackups/Ez elég sok időt vesz igénybe az első alkalommal történő futtatáshoz, de a végén a helyi számítógépnek egy példányt kell tartalmazniaaz /offsitebackups/ könyvtár fájlkönyvtárában.(A parancsfájl futtatása előtt győződjön meg róla, hogy létrehozza ezt a könyvtárat.)
Ezt a beállítást a crontab sorhoz lehet hozzárendelni:
crontab -eAdja hozzá a következő sort, amely óránként 45 percen belül futtatja az rsync-et.Észre fogod venni, hogy itt használjuk az rsync teljes elérési útját.
45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/Beállíthatja, hogy más időpontban, vagy csak naponta egyszer fusson. Ez tényleg rajtad áll.
Megjegyezzük, hogy sok segédprogram van, amely lehetővé teszi az ssh vagy az ftp segítségével történő szinkronizálást. Nem kell az rsync-t használni.
Biztonság
Az első dolog, amit akarsz csinálni, győződjön meg arról, hogy rendszeres felhasználói fiókod van az ssh használatán keresztül, és győződjön meg róla, hogy a su használatával átválthat root-ra. Nagyon rossz ötlet, hogy engedélyezd a közvetlen bejelentkezést a root számára az ssh fölött.
Letiltja az SSH
rootkitöltését Az /etc/ssh/ sshd_config fájl szerkesztése, és keresse meg a következő sort:
#PermitRootLogin igenMódosítsa ezt a sort, hogy így nézzen ki:
PermitRootLogin nincsGyőződjön meg róla, hogy rendszeres felhasználói fiókkal rendelkezik, ésgyökér, mielőtt ezt a változást elvégezné, ellenkező esetben kizárhatja magát.
Az SSH 1. verziójának letiltása
Valóban nincs ok az SSH 2. verzióján kívül másokat használni, mivel biztonságosabbak, mint az előző verziók. Szerkessze az /etc/ssh/ sshd_config fájlt, és keresse meg a következő részt:
#Protocol 2,1 2. protokollGyőződjön meg róla, hogy csak a 2. protokollt használja az ábrán látható módon.
Az SSH kiszolgáló újraindítása
Most újra kell indítania az SSH kiszolgálót, hogy ez érvényesüljön.
/etc/init.d/ sshd restartEllenőrizze a nyitott portokat
A következő parancs segítségével megtekintheti, hogy a kiszolgáló mely portokat hallgatja:
netstat -an |grep LISTENValóban nem kell semmit hallgatnia a plesk 22, 80, esetleg 8443 portjain kívül.
Tűzfal beállítása
Fő cikk: Iptables használata Linux alatt
Opcionálisan beállíthat egy iptables tűzfalat, hogy blokkoljon több kapcsolatot. Például általában blokkolom a hozzáférést minden más porthoz, amely nem a munkahelyem hálózatából származik. Ha dinamikus IP-címed van, elkerülheted ezt a lehetőséget.
Ha már eddig is követtétek a jelen útmutató összes lépését, akkor valószínűleg nem kell tűzfalat hozzáadnia a keverékhez, de érdemes megérteni az opcióit.
Lásd még
- Az Iptables használata Linux alatt
Referenciák
- A DV szerver optimalizálása( mediatemple.net)
- XCache