12Sep

Dedikált virtuális webszerver beállítása

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]

  • 1 Áttekintés
  • 2 Linux konfiguráció
    • 2.1 Letiltás DNS
    • 2.2 Letiltás SpamAssassain
    • 2.3 Disable xinetd
    • 2.4 Limit Plesk memóriahasználat
    • 2.5 Plesk letiltása vagy kikapcsolása( opcionális)
  • 3 MySQL konfiguráció
    • 3.1 Lekérdezési gyorsítótár engedélyezése
    • 3.2 TCP / IP letiltása
  • 4 Apache konfiguráció
  • 5 PHP konfiguráció
    • 5.1 Szükségtelen PHP modulok eltávolítása
    • 5.2 PHP Opcode gyorsítótár
  • 6 Biztonsági mentések
    • 6.1 Automatikus biztonsági mentés parancsfájl létrehozása
    • 6.2 Szinkronizálás a helyszínen az Rsync programmal
  • 7 Biztonság
    • 7.1 RootBejelentkezés SSH fölött
    • 7.2 Az SSH 1. verziójának letiltása
    • 7.3 Az SSH kiszolgáló újraindítása
    • 7.4 A nyitott portok ellenőrzése
    • 7.5 Tűzfal beállítása
  • 8 Lásd még
  • 9 Referenciák

Á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-spamassassin

Letiltá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/ xinetd

Korlá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.include

Adja hozzá a következő sorokat a fájlhoz:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Megjegyezzü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 stop

A következő parancs futtatásával letilthatja az indításkor történő futtatását:

chmod 644 /etc/init.d/ psa

Megjegyzé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 = 8M

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

A letiltáshoz az /etc/ my.cnf fájlhoz adja ki a következő sort:

ugrás-hálózat

Apache 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 20

Most 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 4000

PHP 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 install

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

Adja 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 = Ki

Todo: 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ájlok

Most hozzon létre egy backup.sh parancsfájlt a biztonsági mentések könyvtárába:

vi /backups/ backup.sh

Adja 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.sh

Ezutá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 -e

Adja hozzá a következő sort a crontab-hoz:

1 1 * * * /backups/ backup.sh

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

Adja 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 igen

Módosítsa ezt a sort, hogy így nézzen ki:

PermitRootLogin nincs

Győ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. protokoll

Győ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 restart

Ellenőrizze a nyitott portokat

A következő parancs segítségével megtekintheti, hogy a kiszolgáló mely portokat hallgatja:

netstat -an |grep LISTEN

Való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