12Sep

Pühendunud virtuaalse veebiserveri tutistamine

Kui saate oma veebisaidi käitamiseks spetsiaalset virtuaalserverit, on tõenäoliselt hea, et see on kõigile seadistatud ja mitte kohandatud, et maksimeerida veebisaidi töökorras olekut.

Sisukord

[peida]

  • 1 Ülevaade
  • 2 Linuxi konfiguratsioon
    • 2.1 Keelake DNS
    • 2.2 Keelake spamAssassain
    • 2.3 Keelake xinetd
    • 2.4 Piiratud Pleski mälu kasutus
    • 2.5 Plesk välja lülitamine või väljalülitamine
  • 3 MySQL konfiguratsioon
    • 3.1 Võimaldage päringu vahemälu
    • 3.2 Keela TCP / IP
  • 4 Apache konfigureerimine
  • 5 PHP konfigureerimine
    • 5.1 Eemalda soovimatud PHP-moodulid
    • 5.2 PHP opcode vahemälu
  • 6 Varukoopiad
    • 6.1 Automaatse varundamise skripti loomine
    • 6.2 Sünkroonige varukoopiaid off-site'i kasutades Rsync
  • 7 Turvalisus
    • 7.1 Keelake rootLogi sisse SSH kaudu
    • 7.2 Keela SSH versioon 1
    • 7.3 Taaskäivitage SSH server
    • 7.4 Kontrollige avatud sadamate
    • 7.5 Tulemüüri
  • seadistamine 8 Vt ka
  • 9 Viited

Ülevaade

Seal on palju probleeme,t maksimaalse jõudluse saavutamiseks:

  • Linuxi konfiguratsioon
    Tavaliselt töötavad teenused, mis ei pruugi olla, raiskab mälu, mida saaks kasutada rohkemate ühenduste jaoks.
  • MySQL-i konfiguratsioon
    Sageli on vaikeseaded põhinevad väikesel serveril, saame lisada mõned võtmetegurid, et jõudlust oluliselt suurendada.
  • Apache konfiguratsioon
    Vaikimisi pakuvad paljud hostipakkujad apachei peaaegu iga installitud mooduli jaoks. Moduleid ei ole vaja laadida, kui te neid kunagi ei kasuta.
  • PHP konfiguratsioon
    Vaikimisi PHP-konfiguratsioon on sarnaselt paisunud, on tavaliselt paigaldatud mittevajalikud lisamoodulid.
  • PHP opcode vahemälu
    Selle asemel, et lubada PHP skripte uuesti kompileerida iga kord, opcode vahemälu vahemällu kompileeritud skripte mällu suureks jõudluse suurendamiseks.
  • varukoopiad
    Kui peaksite installima mõne automaatse varundamise, sest teie hostipakkuja ei kavatse seda teie jaoks teha.
  • Turvalisus
    Kindlasti on Linux vaikimisi turvaline, kuid seal on tavaliselt mõningaid selgeid turvaküsimusi, mida saate parandada mõne kiire seadistusega.

Linuxi konfiguratsioon

Võimalik on teha üsna palju tweaks, mis sõltuvad kasutatavast serverist veidi. Need modifikatsioonid on mõeldud serverile, kus töötab CentOS, kuid nad peaksid töötama enamuse DV-serverite jaoks.

Keela DNS

Kui teie hostipakkuja tegeleb teie domeeni DNS-iga( tõenäoliselt), saate DNS-teenuse keelata.

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

Chmod käsk eemaldab skripti käivitamisloa, peatades selle käivitumisel käivitumisel.

Keela SpamAssassain

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

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

Keela xinetd

xinetdi protsessis on mitu muud protsessi, millest ükski ei ole tüüpilise veebiserveri jaoks kasulik.

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

Piiri Pleski mälu kasutus

Kui kasutate pleski paneeli, saate selle sundida vähemate mälu kasutamist, lisades valikufaili.

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

Lisage failile järgmised read:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Pidage meeles, et see valik töötab MediaTemple DV serverites, kuid seda ei ole kontrollitud ükski teine.(Vt viiteid)

Plesk välja lülitamine või välja lülitamine( valikuline)

Kui kasutate Pleski ainult üks kord aastas, siis on sellel üldse vähe põhjust. Pange tähele, et see samm on täiesti valikuline ja veidi arenenud.

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

/etc/init.d/ psa peatada

Võite selle käivitamisel käitusel keelata, käivitades järgmise käsu:

chmod 644 /etc/init.d/ psa

Pidage meeles, et kui see keelatakse, siis ei saa te käivitada käsitsi ilmafailide õiguste muutmine tagasi( chmod u + x).

MySQL konfiguratsioon

Luba päringu vahemälu

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

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

Võitekui soovite, lisage päringu vahemälule rohkem mälu, kuid ära kasuta liiga palju.

Keela TCP / IP

Üllatav hulk peremeesid lubavad vaikimisi juurdepääsu TCP / IP-le MySQL-ile, mis ei ole veebisaidi jaoks mõttekas. Võite välja mõelda, kas mysql kasutab TCP / IP-d, käivitades järgmise käsu:

netstat -an |grep 3306

Selle keelamiseks lisage oma /etc/ my.cnf-faili järgmine rida:

skip-networking

Apache konfiguratsioon

Avage oma httpd.conf-fail, mida tihti leitakse /etc/httpd/conf/-st httpd.conf

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

Timeout 120

Ja muutke see järgmiselt:

Timeout 20

Nüüd leiate sektsiooni, mis sisaldab neid jooni ja kohandab midagi sarnast:

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

PHP konfiguratsioon

Üks asi, midaPea meeles, kui PHP-platvormi serveri tutistamine on see, et iga apache-teemaline fail laadib PHP-i mälus eraldi asukohta. See tähendab, et kui kasutamata moodul lisab PHP-le 256-kordset mälu, siis on 40 vahemälu vahemikus 40 MB mälu raiskad.

Eemalda soovimatud PHP-moodulid

Peate leidma oma php.ini-faili, mis tavaliselt leitakse /etc/ php.ini( Pange tähele, et mõnel distributsioonil on kataloog /etc/php.d/, millel on mitu. ini-faili, millest üks oniga moodul.

Kommenteerige välja kõik moodulite koormooduli read:

  • odbc
  • snmp
  • pdo
  • odbc pood
  • mysqli
  • ioncube-laadija
  • json
  • imap
  • ldap
  • ncurses

Todo: Lisateabe saamiseks siin.

PHP Opcode Cache

Sealon mitmeid opcode vahemällu, mida saate kasutada, sealhulgas APC, eAccelerator ja Xcache, millest viimane on minu isiklike eelistuste tõttu stabiilsuse tõttu.

Laadige xcache alla ja ekstraheerige see kataloogi ja käivitage järgnevad käsklused xcache allikastkataloog:

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

Avage oma php.ini fail jalisage xcache jaoks uus jaotis. Peate kohandama radu, kui teie php-moodulid laaditakse kuskilt mujale.

vi /etc/ php.ini

Lisage failile järgmine jaotis:

[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];Muuda xcache.size opcode vahemiku suuruse häälestamiseks xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Muuda xcache.var_size muutuva vahemiku suuruse 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 =Sisse xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Sisse xcache.stat = Sisse xcache.optimizer = Väljas

Todo: Vajadus sellel pisut laiendada ja viidata viitele xcache.

varukoopiad

Veebilehe automatiseeritud varukoopiate tegemine on väga vähe tähtsam. Võimalik, et saate oma virtuaalserverite pakkujalt saada hetktõmmis varukoopiaid, mis on samuti väga kasulikud, kuid eelistan ka automaatset varundamist.

Loo automaatne varukoopia skript

alustan tavaliselt kataloogi / varukoopiate loomisega selle all /backups/-failide kataloogi all. Kui soovite, saate neid radu kohandada.

mkdir -p /backups/ failid

Nüüd looge varukoopia kataloogi varukoopia. sh skript:

vi /backups/ backup.sh

Lisage failile järgmine fail, kohandades tee ja mysqldump parooli vastavalt vajadusele:

#!/bin/ sh THEDATE = 'date +% 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-website-path / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar leida /backups/files/ sait * -mtime +5 -exec rm() \;leida /backups/files/ db * -mtime +5 -exec rm() \;

Skript loob esmakordselt kuupäeva muutuja, nii et kõik failid nimetatakse ühe varukoopia jaoks samaks, seejärel laaditakse andmebaas välja, tühistatakse veebifailid ja neid gzipsitakse. Leidmiskäske kasutatakse vanemate kui 5 päeva vanuste failide eemaldamiseks, kuna te ei soovi, et teie kettaruum tühjaks jääks.

Teha skripti käivitatava faili, käivitades järgmise käsu:

chmod u + x /backups/ backup.sh

Järgmiseks peate määrama selle automaatseks käitamiseks cron. Veenduge, et kasutate kontot, millel on juurdepääs varundamiste kataloogile.

crontab -e

Lisage crontabile järgmine rida:

1 1 * * * /backups/ backup.sh

Saate proovida skripti õigel ajal, käivitades selle kasutajakonto sisselogimisel.(Ma käivitan tavaliselt varukoopiaid rootina).

sünkroonimata varukoopiad väljaspool Rsync

-d. Nüüd, kui teil on töötava serveri automaatsed varukoopiad, saate neid sünkroonida kusagil mujal rsynci utiliidi abil. Sa tahaksid lugeda seda artiklit, kuidas seada ssh võtmed automaatseks sisselogimiseks. Kaugserverisse avaliku SSH-võtme lisamine ühtsesse käsku

. Seda saab testida, käivitades seda käsku linux või mac-seadmes teises asukohas( Iomab kodus linuxi serverit, kus ma seda käivitan)

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

Selleks kulub mõni aeg esmakordselt käivitamiseks, kuid lõpuks peab teie kohalikul arvutil olema koopiafailide kataloogist /offsitebackups/ kataloogis.(Enne skripti käivitamist looge kindlasti see kataloog)

Saate seda planeerida, lisades sellele crontabi rida:

crontab -e

Lisage järgmine rida, mis käivitab rsync iga tund 45-minutilise märgi juures. Märkad, et me kasutame siin rsync täieliku tee.

45 * * * * /usr/bin/ [email protected]: /backups/files/ * /offsitebackups/

Võite planeerida selle töötamist teisel ajal või ainult üks kord päevas. See on sulle tõesti nii.

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

Turvalisus

Esimene asi, mida soovite teha, on veenduda, et teil on ssh-i kaudu kasutatav regulaarne kasutajakonto ja veenduge, et su, et lülitada root sisse. See on väga halb mõte lubada otsest sisselogimist ssh juurutamiseks.

Keelake root sisse logimine üle SSH

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

#PermitRootLogin jah

Muutke seda rida selliseks:

PermitRootLogin no

Veenduge, et teil on tavaline kasutajakonto ja su suroot enne muudatuse tegemist, muidu võite lukustada ise.

Keela SSH versioon 1

Seal pole tõesti mingit põhjust kasutada muud kui SSH versiooni 2, kuna see on turvalisem kui eelmised versioonid. Muutke /etc/ssh/ sshd_config-faili ja otsige järgmist sektsiooni:

#Protocol 2,1 Protokoll 2

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

Restart SSH Server

Nüüd peate SSH serveri taaskäivitama, et see jõustuks.

/etc/init.d/ sshd taaskäivitage

Kontrollige avatud sadamaid

Võite kasutada järgmist käsku, et näha, millised porti server kuulab:

netstat -an |grep LISTEN

Teil ei tohiks midagi kuulata kui pleski pordid 22, 80 ja 8443.

Seadista tulemüür

Peamine artikkel: Iptablesi kasutamine Linuxis

Võite soovi korral seadistada iptablesi tulemüüri, et blokeerida rohkem ühendusi. Näiteks blokeerin tavaliselt juurdepääsu muule muule porti kui mu töövõrgust. Kui teil on dünaamiline IP-aadress, soovite seda võimalust vältida.

Kui olete seni järginud kõiki selle juhendi samme seni, pole tõenäoliselt vaja segavale tulemüüri lisada, kuid mõistagi on teie võimalusi parem mõista.

Vt ka

  • Iptablesi kasutamine Linuxis

viited

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