Koduleht » kuidas » Pühendatud virtuaalse veebiserveri näpistamine

    Pühendatud virtuaalse veebiserveri näpistamine

    Kui saate oma veebisaidi käivitamiseks spetsiaalse virtuaalse serveri, on tõenäoline, et see on kõigile konfigureeritud ja seda ei ole kohandatud veebisaidi käitamise maksimeerimiseks.

    Sisu

    [peida]

    • 1 Ülevaade
    • 2 Linuxi konfiguratsioon
      • 2.1 DNS keelamine
      • 2.2 SpamAssassain keelamine
      • 2.3 Keela xinetd
      • 2.4 Pleski mälu kasutamise piiramine
      • 2.5 Pleski keelamine või väljalülitamine (valikuline)
    • 3 MySQL-i seadistamine
      • 3.1 Päringu vahemälu lubamine
      • 3.2 TCP / IP keelamine
    • 4 Apache seadistamine
    • 5 PHP konfiguratsioon
      • 5.1 Eemaldage mittevajalikud PHP moodulid
      • 5.2 PHP Opcode vahemälu
    • 6 Varukoopiad
      • 6.1 Loo automatiseeritud varukripti
      • 6.2 Rsynciga varundatud varukoopiate sünkroonimine
    • 7 Turvalisus
      • 7.1 Sisselogimise keelamine üle SSH
      • 7.2 Keela SSH versioon 1
      • 7.3 Taaskäivitage SSH-server
      • 7.4 Avatud portide kontrollimine
      • 7.5 Tulemüüri seadistamine
    • 8 Vaata ka
    • 9 Viited

    Ülevaade

    On mitmeid probleeme, kus me soovime maksimeerida jõudlust:

    • Linuxi konfiguratsioon
      Tavaliselt töötavad teenused, mis ei pea olema, raiskama mälu, mida saaks kasutada rohkemate ühenduste jaoks.
    • MySQL-i konfiguratsioon
      Sageli põhinevad vaikeseaded väikesel serveril, saame lisada mõned olulised muudatused, et suurendada jõudlust.
    • Apache konfiguratsioon
      Vaikimisi paigaldavad enamik hostiteenuse pakkujaid apache'i peaaegu iga paigaldatud mooduliga. Moduleid ei ole vaja laadida, kui te neid kunagi ei kasuta.
    • PHP konfiguratsioon
      PHP-i vaikimisi konfigureerimine on sarnaselt ülespuhutud, tavaliselt on paigaldatud tonni tarbetuid lisamooduleid.
    • PHP Opcode vahemälu
      Selle asemel, et võimaldada PHP-l skripte korduvalt kompileerida iga kord, salvestab opcode vahemälu mälus olevad kompileeritud skriptid suure jõudluse suurendamiseks.
    • Varukoopiad
      Peaksid tõenäoliselt seadistama mõned automatiseeritud varukoopiad, kuna teie hostingu pakkuja ei kavatse seda teie jaoks teha.
    • Turvalisus
      Kindlasti on Linux vaikimisi turvaline, kuid tavaliselt on mõned pimestavad turvaprobleemid, mida saate mõne kiire seadistusega parandada.

    Linuxi konfiguratsioon

    Seal on üsna palju tweaks saate teha, mis varieerub veidi sõltuvalt serveri kasutate. Need kõned on mõeldud serverile, mis töötab CentOSis, kuid need peaksid töötama enamiku DV-serverite puhul.

    Keela DNS

    Kui teie hostingu pakkuja haldab teie domeeni DNS-i (tõenäoliselt), saate DNS-teenuse keelata.

    keelata dns /etc/init.d/named stop chmod 644 /etc/init.d/named

    Käsk chmod eemaldab skripti täitmisloa, peatades selle käivitamisel.

    Keela SpamAssassain

    Kui te ei kasuta oma serveris e-posti kontosid, ei tohiks te rämpsposti vastaseid tööriistu kasutada. (Samuti peaksite kontrollima Google'i rakendusi, palju paremat e-posti lahendust)

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

    Keela xinetd

    Protsessis xinetd on mitmeid teisi protsesse, millest ükski ei ole tüüpilise veebiserveri jaoks kasulik.

    /etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd

    Piirata Pleski mälu kasutamist

    Kui kasutate plesk-paneeli, võite sundida seda kasutama vähem mälu, lisades suvandfaili.

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

    Lisage faili järgmised read:

    MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

    Pange tähele, et see suvand on teadaolevalt MediaTemple DV-serverites töötav, kuid seda pole veel ühelgi teisel kontrollitud. (Vaata viiteid)

    Pleski keelamine või väljalülitamine (valikuline)

    Kui kasutate Pleskit ainult üks kord aastas, ei ole põhjust seda üldse kasutada. Pange tähele, et see samm on täiesti vabatahtlik ja veidi arenenum.

    Käivitage järgmine käsk pleski väljalülitamiseks:

    /etc/init.d/psa peatus

    Saate selle käivitamisel käivitamisel keelata järgmise käsu:

    chmod 644 /etc/init.d/psa

    Pange tähele, et kui te selle keelate, ei saa te seda käsitsi käivitada ilma faililubade muutmata (chmod u + x).

    MySQL-i seadistamine

    Luba päringute vahemälu

    Avage /etc/my.cnf fail ja lisage oma [mysqld] sektsiooni järgmised read:

    [mysqld] query-cache-type = 1 päring-cache-size = 8M

    Kui soovite, võite päringu vahemällu lisada rohkem mälu, kuid ärge kasutage liiga palju.

    Keela TCP / IP

    Üllatav hulk peremeesrühmi võimaldab juurdepääsu MySQL-ile TCP / IP-s vaikimisi, mis pole veebisaidi jaoks mõtet. Saate aru saada, kas mysql kuulab TCP / IP-d, käivitades järgmise käsu:

    netstat -an | grep 3306

    Keelamiseks lisage oma /etc/my.cnf failile järgmine rida:

    vahelejätmine

    Apache seadistamine

    Avage oma httpd.conf-fail, mida sageli leiate aadressilt /etc/httpd/conf/httpd.conf

    Leidke rida, mis näeb välja selline:

    Timeout 120

    Ja muuda seda sellele:

    Timeout 20

    Nüüd leiad jaotise, mis sisaldab neid ridu, ja kohandage midagi sarnast:

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

    PHP seadistamine

    Üks asi, mida meeles pidada, kui serverit PHP-platvormil on, on see, et iga apache niit laadib PHP-d üles eraldi mälus. See tähendab, et kui kasutamata moodul lisab PHP-le 256kb mälu, siis 40-le apache niidile raisatakse 10MB mälu.

    Eemaldage mittevajalikud PHP moodulid

    Peate leidma oma php.ini faili, mis tavaliselt asub aadressil /etc/php.ini (Pange tähele, et mõnede levituste puhul on /etc/php.d/ kataloog, millel on arv .ini faile, üks iga mooduli kohta.

    Kommenteerige neid mooduleid sisaldavaid koormusmoodulite ridu:

    • odbc
    • snmp
    • pdo
    • odbc pdo
    • mysqli
    • ioncube-laadur
    • Json
    • imap
    • ldap
    • nursid

    Todo: Lisage siit rohkem teavet.

    PHP Opcode vahemälu

    Kasutada saab arvukaid käskude vahemälusid, sealhulgas APC, eAccelerator ja Xcache, viimane on minu isiklik eelistus stabiilsuse tõttu.

    Laadige xcache alla ja eraldage see kataloogi ning seejärel käivitage järgmised käsklused xcache lähtekataloogist:

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

    Avage oma php.ini fail ja lisage uus jaotis xcache jaoks. Kui php moodulid on laaditud mujalt, peate te marsruute kohandama.

    vi /etc/php.ini

    Lisage faili järgmine lõik:

    [xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Muutke xcache.size, et häälestada opcode vahemälu suurus xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Muutke xcache.var_size muutuja vahemälu muutmiseks 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 = Väljas xcache.readonly_protection = On xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = Sisse xcache.optimizer = Väljas

    Todo: Vajadus seda veidi laiendada ja lingida viitele xcache.

    Varukoopiad

    Seal on väga vähe tähtsam kui teie veebisaidi automaatse varukoopia tegemine. Võimalik, et saate oma hosting teenusepakkujalt varukoopiaid, mis on samuti väga kasulikud, kuid eelistan ka automatiseeritud varukoopiaid.

    Looge automaatne varukript

    Tavaliselt alustan kataloogi / varukoopia loomisega, mille all on / backups / files kataloog. Võite soovi korral neid teid muuta.

    mkdir -p / varukoopiad / failid

    Nüüd looge varukoopiate kataloogi varukoopia skript:

    vi /backups/backup.sh

    Lisage failile järgmine, kohandades vajadusel marsruute ja mysqldumpi parooli:

    #! / bin / sh THEDATE = "kuupäev +% 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 leida / varukoopiaid / faile / saiti * -mtime +5 -exec rm  \ t leida / varukoopiaid / faile / db * -mtime +5 -exec rm  \ t

    Skript loob kõigepealt kuupäeva muutuja, nii et kõik failid nimetatakse ühe varukoopia jaoks samaks, seejärel kaevatakse andmebaasi, tõmmatakse üles veebifailid ja neid gzipsitakse. Leia käske kasutatakse kõigi 5-päevaste vanemate failide eemaldamiseks, kuna te ei soovi, et teie kettaruumi tühjaks saaks.

    Tehke skript käivitatavaks järgmise käsu abil:

    chmod u + x /backups/backup.sh

    Järgmine peate määrama selle automaatselt croni käivitamiseks. Veenduge, et kasutate kontot, millel on juurdepääs varukoopiate kataloogile.

    crontab-e

    Lisage crontabile järgmine rida:

    1 1 * * * /backups/backup.sh

    Skripti saate testida enne tähtaega, käivitades selle kasutajakontole sisselogimisel. (Tavaliselt töötan varukoopiaid rootina)

    Sünkroonige varukoopiad väljaspool veebilehte Rsync

    Nüüd, kui teil on oma serveri automaatne varukoopia, saate neid rsync utiliidi abil mujal sünkroonida. Te soovite lugeda seda artiklit selle kohta, kuidas ssh-võtmeid automaatse sisselogimise jaoks seadistada: lisage avaliku SSH-võti kaugserverisse ühe käsuga

    Seda saab proovida, käivitades selle käsu linux- või Mac-seadmes mõnes muus kohas (mul on kodus linux-server, mis viib selle läbi)

    rsync -a [email protected]: / varukoopiad / failid / * / offsitebackups /

    See võtab aega esimest korda, kuid lõpuks peaks kohalikul arvutil olema failide kataloogi koopia / offsitebackups / kataloogis. (Enne skripti käivitamist looge kindlasti see kataloog)

    Seda saab ajastada, lisades selle crontabi reale:

    crontab-e

    Lisage järgmine rida, mis käivitab rsync iga tunni järel 45-minutilise märgiga. Pange tähele, et me kasutame siin rsync'i täielikku teed.

    45 * * * * / usr / bin / rsync -a [email protected]: / varukoopiad / failid / * / offsitebackups /

    Saate selle ajastada ajastatud ajal või ainult üks kord päevas. See on sinust tõesti.

    Pange tähele, et on palju utiliite, mis võimaldavad ssh või ftp kaudu sünkroonida. Te ei pea kasutama rsynci.

    Turvalisus

    Esimene asi, mida soovite teha, on veenduda, et teil on tavaline kasutajakonto, mida kasutada ssh kaudu, ning veenduge, et saate kasutada suu abil üleminekut. See on väga halb mõte lubada juurest otsest sisselogimist üle ssh.

    Keela root sisselogimine üle SSH

    Muutke / etc / ssh / sshd_config faili ja otsige järgmist rida:

    #PermitRootLogin jah

    Muutke seda rida, et see näeks välja:

    PermitRootLogin nr

    Veenduge, et teil on tavaline kasutajakonto ja saate enne muudatuse tegemist juurida, vastasel juhul võite ennast ise lukustada.

    Keela SSH versioon 1

    Ei ole mingit põhjust kasutada midagi muud kui SSH versioon 2, kuna see on turvalisem kui eelmised versioonid. Muutke / etc / ssh / sshd_config faili ja otsige järgmist jaotist:

    Protokoll nr 2, protokoll nr 2

    Veenduge, et kasutate ainult protokolli 2, nagu näidatud.

    Taaskäivitage SSH-server

    Nüüd peate selle SSH-serveri uuesti käivitama.

    /etc/init.d/sshd taaskäivitage

    Kontrollige avatud porte

    Võite näha järgmist käsku, et näha, milliseid porte server server kuulab:

    netstat -an | grep LISTEN

    Sa ei tohiks tegelikult midagi muud kuulata peale sadamate 22, 80 ja võimaluse korral ka 8443.

    Seadistage tulemüür

    Peamine artikkel: Iptables'i kasutamine Linuxis

    Saate soovi korral seadistada iptablesi tulemüüri, et blokeerida rohkem ühendusi. Näiteks blokeerin tavaliselt juurdepääsu muudele sadamatele peale oma töövõrgu. Kui teil on dünaamiline IP-aadress, siis soovite seda võimalust vältida.

    Kui olete juba järginud kõiki käesoleva juhendi samme, ei ole ilmselt vajalik lisada tulemüüri segule, kuid on hea mõista teie võimalusi.

    Vaata ka

    • Iptables'i kasutamine Linuxis

    Viited

    • DV-serveri optimeerimine (mediatemple.net)
    • XCache