Homepage » hogyan kell » Egy dedikált virtuális webszerver csípése

    Egy dedikált virtuális webszerver csípése

    Ha egy dedikált virtuális szervert kap a webhelyének futtatásához, akkor jó eséllyel, hogy mindenki számára konfigurálva van, és nem testreszabható, hogy maximalizálja a webhely futtatásának teljesítményét.

    tartalom

    [elrejt]

    • 1. Áttekintés
    • 2 Linux konfiguráció
      • 2.1 A DNS letiltása
      • 2.2 A SpamAssassain letiltása
      • 2.3 Az xinetd letiltása
      • 2.4 Plesk memóriahasználat korlátozása
      • 2.5 Plesk letiltása vagy kikapcsolása (opcionális)
    • 3 MySQL konfiguráció
      • 3.1 A lekérdezési gyorsítótár engedélyezése
      • 3.2 A TCP / IP letiltása
    • 4 Apache konfiguráció
    • 5 PHP konfiguráció
      • 5.1 Távolítsa el a szükségtelen PHP modulokat
      • 5.2 PHP Opcode gyorsítótár
    • 6 mentések
      • 6.1 Automatizált biztonsági mentési parancsfájl létrehozása
      • 6.2 Szinkronizálás a biztonsági mentésen kívülről az Rsync használatával
    • 7 biztonsági
      • 7.1 A root bejelentkezés letiltása SSH-n keresztül
      • 7.2 Az SSH 1. verziójának letiltása
      • 7.3 Indítsa újra az SSH szervert
      • 7.4 Ellenőrizze a nyílt portokat
      • 7.5 Tűzfal beállítása
    • 8 Lásd még
    • 9 Hivatkozások

    Áttekintés

    Számos problémás terület van, ahol maximalizálni szeretnénk a teljesítményt:

    • Linux konfiguráció
      Általában olyan szolgáltatások futnak, amelyeknek nem kell lenniük, el kell pazarolniuk a memóriát, amelyet több kapcsolatra lehetne használni.
    • MySQL konfiguráció
      Gyakran az alapértelmezett beállítások egy kis kiszolgálón alapulnak, néhány kulcsfontosságú változtatást adhatunk a teljesítmény növeléséhez.
    • Apache konfiguráció
      Alapértelmezés szerint a legtöbb tárhelyszolgáltató telepíti az apache-t majdnem minden telepített modulhoz. Nincs ok a modulok betöltésére, ha nem használja őket.
    • PHP konfiguráció
      Az alapértelmezett PHP-konfiguráció hasonlóan dagadt, rendszerint egy csomó szükségtelen extra modul van telepítve.
    • PHP Opcode gyorsítótár
      Ahelyett, hogy lehetővé tenné a PHP-t, hogy minden egyes alkalommal újrafordítsa a szkripteket, az opcode gyorsítótár gyorsítótárba helyezi a memóriában tárolt parancsfájlokat a hatalmas teljesítménynövelés érdekében.
    • mentések
      Valószínűleg be kell állítania néhány automatikus biztonsági mentést, mivel a tárhelyszolgáltatója nem fogja megtenni.
    • Biztonság
      Persze, a Linux alapértelmezés szerint elég biztonságos, de általában néhány olyan ragyogó biztonsági probléma van, amelyet néhány gyors beállítással javíthat.

    Linux konfiguráció

    Meglehetősen sok tweaks van, amit a használt kiszolgálótól függően változhat. Ezek a csevegések egy CentOS-ot futtató kiszolgálóra vonatkoznak, de a DV-szerverek többségénél kell működniük.

    A DNS letiltása

    Ha a tárhelyszolgáltatója kezeli a tartomány DNS-jét (valószínűleg), akkor letilthatja a DNS-szolgáltatás futását.

    tiltsa le a dns /etc/init.d/named stop chmod 644 /etc/init.d/named parancsot

    A chmod parancs eltávolítja a parancsfájltól a végrehajtási engedélyt, és leállítja azt a indításkor.

    A SpamAssassain letiltása

    Ha nem használ e-mail fiókokat a kiszolgálón, akkor ne fáradjon az anti-spam eszközök futtatására. (Meg kell nézni a Google Alkalmazásokat is, sokkal jobb e-mail megoldást)

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

    Az xinetd letiltása

    Az xinetd folyamat számos más folyamatot tartalmaz, amelyek egyike 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, akkor kényszerítheti arra, hogy kevesebb memóriát használjon egy 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

    Ne feledje, hogy ez az opció ismert, hogy a MediaTemple DV szervereken működik, de még nem ellenőrizték. (Lásd a hivatkozásokat)

    Plesk letiltása vagy kikapcsolása (opcionális)

    Ha évente egyszer csak a Plesk-t használja, nagyon kevés ok van arra, hogy egyáltalán működjön. Ne feledje, hogy ez a lépés teljesen opcionális, és kissé fejlettebb.

    Futtassa a következő parancsot a plesk kikapcsolásához:

    /etc/init.d/psa megáll

    A következő parancs futtatásával letilthatja a futást az indításkor:

    chmod 644 /etc/init.d/psa

    Ne feledje, hogy ha letiltja, akkor nem indíthatja el manuálisan a fájljogosultságok visszaállítása nélkül (chmod u + x).

    MySQL konfiguráció

    Lekérdezés gyorsítótár engedélyezése

    Nyissa meg az /etc/my.cnf fájlt, és adja hozzá a következő sorokat a [mysqld] részéhez:

    [mysqld] query-cache-type = 1 lekérdezés-cache-size = 8M

    Ha többet szeretne hozzáadni a lekérdezés gyorsítótárához, ne használjon túl sokat.

    A TCP / IP letiltása

    A meglepő számú gép lehetővé teszi a MySQL elérését a TCP / IP-n alapértelmezés szerint, ami nincs értelme a webhelynek. Megtudhatja, hogy a mysql a következő paranccsal futtatja-e a TCP / IP-t:

    netstat -an | grep 3306

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

    skip-hálózati

    Apache konfiguráció

    Nyissa meg a httpd.conf fájlt, amely gyakran megtalálható az /etc/httpd/conf/httpd.conf fájlban

    Keresse meg a következő vonalat:

    Időkorlát 120

    És változtassa meg erre:

    Időkorlát 20

    Most keresse meg azokat a részeket, amelyek ezeket a sorokat tartalmazzák, és állítson be valami hasonlót:

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

    PHP konfiguráció

    Az egyik dolog, amit szem előtt kell tartani, amikor a PHP platformon egy szervert csiszolnak, az, hogy minden egyes apache-szál a PHP-t külön memóriában fogja betölteni. Ez azt jelenti, hogy ha egy fel nem használt modul 256kb memóriát ad hozzá a PHP-hez, 40 apache-szálon 10MB memóriát pazarol.

    Távolítsa el a szükségtelen PHP modulokat

    Meg kell találnia a php.ini fájlt, amely általában az /etc/php.ini címen található (vegye figyelembe, hogy egyes terjesztéseknél egy /etc/php.d/ könyvtár lesz .ini fájlokkal.) minden egyes modulhoz.

    Kommentálja ki a modulokat tartalmazó betöltőmodulokat:

    • odbc
    • SNMP
    • OEM
    • odbc pdo
    • mysqli
    • ioncube-rakodó
    • jSON
    • imap
    • ldap
    • ncurses

    Todo: További információk hozzáadása itt.

    PHP Opcode gyorsítótár

    Számos opciós kód gyorsítótárat használhat, köztük az APC, az eAccelerator és az Xcache, az utolsó pedig a személyes stabilitásom miatt..

    Töltse le az xcache fájlt, és vegye ki egy könyvtárba, majd futtassa az alábbi parancsokat az xcache forráskönyvtárból:

    phpize ./configure --enable-xcache make make install

    Nyissa meg a php.ini fájlt, és adjon hozzá egy új részt az xcache számára. Be kell állítania az útvonalakat, ha a php moduljait máshol töltik be.

    vi /etc/php.ini

    Adja hozzá a következő részt a fájlhoz:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Az xcache.size módosítása az opcode gyorsítótár méretének beállításához xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Módosítsa az xcache.var_size értéket a változó cache 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 = Ki xcache.readonly_protection = On xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = Ki

    Todo: Szüksége van egy kicsit kibővíteni és hivatkozni az xcache-re a hivatkozásokban.

    mentések

    Nagyon kevésbé fontos, mint a webhely automatikus mentése. Előfordulhat, hogy pillanatfelvételt készíthet a tárhelyszolgáltatótól, ami szintén nagyon hasznos, de én is inkább automatikus biztonsági mentéseket készítek.

    Automatizált biztonsági mentési parancsfájl létrehozása

    Általában a / backups könyvtár létrehozásával kezdem, egy / backups / files könyvtárral alatta. Ezeket az útvonalakat beállíthatja, ha akarja.

    mkdir -p / biztonsági másolatok / fájlok

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

    vi /backups/backup.sh

    Adja hozzá a következő fájlokat, módosítsa az útvonalakat és a mysqldump jelszót, ha szükséges:

    #! / bin / sh THEDATE = "dátum +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / files / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar keresés / mentés / fájlok / site * -mtime +5 -exec rm  \ t find / backups / files / db * -mtime +5 -exec rm  \ t

    A szkript először egy dátumváltozót hoz létre, így az összes fájl ugyanaz lesz, ha egyetlen biztonsági másolatot készít, majd eldobja az adatbázist, felemeli a webes fájlokat, és elrejti őket. A keresési parancsokat az 5 napnál régebbi fájlok eltávolítására használják, mivel nem akarod, hogy a meghajtó elfogy a hely.

    Végezze el a parancsfájlt a következő parancs futtatásával:

    chmod u + x /backups/backup.sh

    Ezután hozzá kell rendelnie, hogy automatikusan elinduljon a cron. Győződjön meg róla, hogy olyan fiókot használ, amely hozzáférést biztosít a mentési könyvtárhoz.

    crontab-e

    Adja hozzá a következő sort a crontabhoz:

    1 1 * * * /backups/backup.sh

    A szkriptet idő előtt tesztelheti, ha a felhasználói fiókba bejelentkezve futtatja. (Általában rootként futtatom a biztonsági mentéseket)

    Szinkronizálja a biztonsági mentéseket a webhelyen kívül az Rsync használatával

    Most, hogy a szerverének automatikus mentése van, szinkronizálhatja őket valahol máshol az rsync segédprogram használatával. Ezt a cikket szeretné elolvasni az ssh kulcsok automatikus bejelentkezéskor történő beállításáról: nyilvános SSH kulcs hozzáadása egyetlen távoli kiszolgálóhoz egyetlen parancsban

    Ezt tesztelheti úgy, hogy a parancsot egy Linux vagy Mac gépen egy másik helyen futtatja (otthon van linux-szerverem, amelyikben ezt futtatom)

    rsync -a [email protected]: / backups / files / * / offsitebackups /

    Ez egy időig tart, amíg az első alkalommal fut, de a végén a helyi számítógépnek rendelkeznie kell a / offsitebackups / könyvtárban lévő fájlkönyvtár másolatával. (A parancsfájl futtatása előtt győződjön meg róla, hogy létrehozza ezt a könyvtárat)

    Ezt ütemezheti úgy, hogy hozzáadja azt egy crontab sorhoz:

    crontab-e

    Adja hozzá a következő sort, amely minden órában rsync-t futtat a 45 perces jelzéssel. Megfigyeljük, hogy itt a teljes elérési utat használjuk.

    45 * * * * / usr / bin / rsync -a [email protected]: / biztonsági másolatok / fájlok / * / offsitebackups /

    Akkor ütemezheti, hogy egy másik időpontban vagy naponta egyszer fut. Ez tényleg rajtad múlik.

    Ne feledje, hogy sok segédprogram teszi lehetővé, hogy szinkronizáljon az ssh vagy az ftp segítségével. Nem kell rsync-t használni.

    Biztonság

    Az első dolog, amit meg akar tenni, győződjön meg róla, hogy rendszeres felhasználói fiókja van az ssh-en keresztül történő használathoz, és győződjön meg róla, hogy a su segítségével lehet váltani a gyökérre. Ez egy nagyon rossz ötlet, hogy engedélyezzük a root bejelentkezést az ssh felett.

    A root bejelentkezés letiltása az SSH-n keresztül

    Szerkessze az / etc / ssh / sshd_config fájlt, és keresse meg a következő sort:

    #PermitRootLogin igen

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

    PermitRootLogin no

    Győződjön meg róla, hogy rendszeres felhasználói fiókja van, és a változás megkezdése előtt gyökerezik a gyökérzetbe, különben ki is zárhatja magát.

    Az SSH 1. verzió letiltása

    Valójában nincs ok arra, hogy az SSH 2-es verzióját használja, mivel ez biztonságosabb, mint a korábbi verziók. Szerkessze az / etc / ssh / sshd_config fájlt, és keresse meg a következő részt:

    # 2. protokoll 2. jegyzőkönyv

    Győződjön meg arról, hogy csak a 2. protokollt használja az ábrán látható módon.

    Indítsa újra az SSH szervert

    Most újra kell indítania az SSH-kiszolgálót, hogy ez érvényesüljön.

    /etc/init.d/sshd újraindítás

    Ellenőrizze a nyílt portokat

    A következő paranccsal tekintheti meg, hogy a kiszolgáló milyen portokat néz:

    netstat -an | grep LISTEN

    Tényleg nem kellene semmit hallgatnia a 22-es, 80-as és esetleg 8443-as portokon kívül.

    Állítson be egy tűzfalat

    Fő cikk: Az Iptables használata Linuxon

    Opcionálisan beállíthat iptables tűzfalat további kapcsolatok blokkolására. Például általában blokkolom a hozzáférést bármely más porthoz, a munkahálózaton kívül. Ha dinamikus IP-címe van, el kell kerülnie ezt az opciót.

    Ha eddig az útmutató összes lépését követte, valószínűleg nem szükséges tűzfalat hozzáadni a keverékhez, de jó megérteni az opciókat.

    Lásd még

    • Az Iptables használata Linuxon

    Irodalom

    • A DV-kiszolgáló optimalizálása (mediatemple.net)
    • XCache