Tvarkyti specialųjį virtualų žiniatinklio serverį

Turinys:

Tvarkyti specialųjį virtualų žiniatinklio serverį
Tvarkyti specialųjį virtualų žiniatinklio serverį

Video: Tvarkyti specialųjį virtualų žiniatinklio serverį

Video: Tvarkyti specialųjį virtualų žiniatinklio serverį
Video: How to move emails from Outlook on Windows to Apple Mail ( free easy solution ) - YouTube 2024, Gegužė
Anonim

Kai gaunate specialųjį virtualų serverį paleisti savo svetainę, yra tikimybė, kad ji yra sukonfigūruota visiems, o ne pritaikyta, siekiant padidinti svetainės veikimo našumą.

Turinys

[paslėpti]

  • 1 Apžvalga
  • 2 konfigūracija Linux

    • 2.1 Išjungti DNS
    • 2.2 Išjungti "SpamAssassain"
    • 2.3 Išjungti xinetd
    • 2.4. Apriboti "Plesk" atminties naudojimą
    • 2.5 Išjungti arba išjungti Plesk (neprivaloma)
  • 3 MySQL konfigūracija

    • 3.1 Įgalinti užklausų talpyklą
    • 3.2 Išjungti TCP / IP
  • 4 Apache konfigūravimas
  • 5 PHP konfigūracija

    • 5.1 Pašalinti nereikalingus PHP modulius
    • 5.2 PHP talpyklos opcode
  • 6 atsarginės kopijos

    • 6.1 Sukurti automatinį atsarginį kopijavimo scenarijų
    • 6.2 sinchronizuoti atsargines kopijas ne svetainėje, naudojant "Rsync"
  • 7 saugumas

    • 7.1 Išjungti šakninį prisijungimą per SSH
    • 7.2 Išjunk SSH versiją 1
    • 7.3 Iš naujo paleiskite SSH serverį
    • 7.4. Atvirų uostų tikrinimas
    • 7.5. Nustatykite užkardą
  • 8 taip pat
  • 9 Nuorodos

Apžvalga

Yra daug probleminių sričių, kuriose norime maksimaliai padidinti našumą:

  • Linux konfigūracija Dažniausiai naudojamos paslaugos nereikalauja išmesti atminties, kuri gali būti naudojama daugiau ryšių.
  • MySQL konfigūracija Dažnai numatytieji nustatymai yra pagrįsti mažu serveriu, todėl mes galime pridėti keletą pagrindinių pakeitimų, kad būtų galima daug padidinti našumą.
  • Apache konfigūracija Pagal nutylėjimą dauguma prieglobos paslaugų teikėjų įdiegia apache beveik kiekvieną modulį. Nėra jokios priežasties įkelti modulius, jei jūs jų niekada nenorite.
  • PHP konfigūracija Numatyta PHP konfigūracija taip pat yra išpūstos, paprastai yra talpos nereikalingų papildomų modulių.
  • PHP opcode talpykla Vietoj to, kad PHP kaskart pakartotinai kompiliuos scenarijus, "opcode" talpyklė talpins atmintyje surinktus scenarijus į talpyklą, kad padidintų našumą.
  • Atsarginės kopijos Tikriausiai turėtumėte įdiegti automatizuotas atsargines kopijas, nes jūsų prieglobos paslaugų teikėjas nesiruošia tai padaryti už jus.
  • Saugumas Žinoma, pagal numatytuosius nustatymus "Linux" yra pakankamai saugi, bet paprastai yra keletas akivaizdžių saugumo problemų, kurias galite išspręsti keliais greitais nustatymais.

Linux konfigūracija

Galite atlikti keletą patobulinimų, kurie šiek tiek skirsis priklausomai nuo jūsų naudojamo serverio. Šie pakeitimai yra serveriui, kuriame veikia "CentOS", tačiau jie turėtų dirbti daugeliu DV serverių.

Išjungti DNS

Jei jūsų prieglobos paslaugų teikėjas tvarko jūsų domeno DNS (tikriausiai), tada galite išjungti DNS paslaugą.

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

Komandos chmod pašalina scenarijaus vykdymo leidimą, sustabdydamas paleidimą paleidžiant.

Išjungti "SpamAssassain"

Jei nenaudojate el. Pašto abonementų savo pačiame serveryje, neturėtumėte nerimauti dirbti su anti-spam įrankiais. (Taip pat turėtumėte patikrinti "Google Apps", daug geresnį el. Pašto sprendimą).

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

Išjungti xinetd

"Xinetd" procese yra keletas kitų procesų, kurių nė vienas nėra naudingas įprastam žiniatinklio serveriui.

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

Apriboti Plesk atminties naudojimą

Jei naudojate "plesk" skydą, galite priversti jį naudoti mažiau atminties pridėdami parinkčių failą.

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

Į failą pridėkite šias eilutes:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Atkreipkite dėmesį, kad ši galimybė veikia "MediaTemple DV" serveriuose, bet nebuvo patikrinta kitose. (Žr. Nuorodas)

Išjungti arba išjungti Plesk (neprivaloma)

Jei kartą per metus naudojate "Plesk", tai yra labai mažai priežasčių, kodėl ji vis tiek išlieka. Atminkite, kad šis žingsnis yra visiškai neprivalomas ir šiek tiek labiau pažengęs.

Paleiskite šią komandą, kad išjungtumėte "plesk":

/etc/init.d/psa stop

Galite išjungti jį paleisti paleidžiant paleisdami šią komandą:

chmod 644 /etc/init.d/psa

Atminkite, kad jei jį išjungsite, negalėsite jį paleisti rankiniu būdu, nepakeisite failų teisių (chmod u + x).

MySQL konfigūracija

Įgalinti užklausos talpyklą

Atidarykite savo /etc/my.cnf failą ir pridėkite šias eilutes savo [mysqld] skyriuje:

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

Jei norite, galite pridėti daugiau atminties į užklausos talpyklą, bet nenaudokite per daug.

Išjungti TCP / IP

Nenuostabu, kad kompiuterių skaičius įgalina prieigą prie "MySQL" pagal TCP / IP pagal nutylėjimą, o tai neturi prasmės šiai svetainei. Galite išsiaiškinti, ar mysql klauso TCP / IP, paleisdami šią komandą:

netstat -an | grep 3306

Norėdami išjungti, pridėkite šią eilutę prie failo /etc/my.cnf:

skip-networking

Apache konfigūravimas

Atidarykite httpd.conf failą, dažnai randamą /etc/httpd/conf/httpd.conf

Suraskite eilutę, kuri atrodo taip:

Timeout 120

Ir pakeisk tai į šį:

Timeout 20

Dabar raskite skyrių, kuriame yra šios eilutės, ir prisiderinkite prie panašaus:

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

PHP konfigūracija

Vienas iš dalykų, kuriuos reikia nepamiršti, kai optimizuojant PHP serverio serverį, yra tai, kad kiekvienas apache srautas ketina įkelti PHP į atskirą atminties vietą. Tai reiškia, kad jei nepanaudotas modulis prideda 256k atminties PHP, per 40 apache temas jūs išmesite 10 MB atminties.

Pašalinti nereikalingus PHP modulius

Turėsite surasti savo failo php.ini, kuris paprastai yra / etc / php.ini (atkreipkite dėmesį, kad kai kuriuose distributyvuose bus katalogas /etc/php.d/ su daugybe.ini failų, vienas už kiekvieną modulį.

Komentuokite bet kurias apkrovos modulio linijas su šiais moduliais:

  • Odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • ioncube-loader
  • json
  • imap
  • ldap
  • ncurses

Todo: pridėkite daugiau informacijos čia.

PHP opcode talpykla

Yra keletas op kodų talpyklų, kurias galite naudoti, įskaitant APC, eAccelerator ir Xcache, o paskutinis yra mano asmeninis pasirinkimas dėl stabilumo.

Atsisiųskite xcache ir išskleiskite ją į katalogą ir paleiskite šias komandas iš xcache šaltinio katalogo:

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

Atidarykite savo failą php.ini ir pridėkite naują skyrių xcache. Jums reikės koreguoti kelius, jei jūsų php moduliai yra įkelti iš kažkur kitur.

vi /etc/php.ini

Į failą pridėkite šį skyrių:

[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = 'myusername' xcache.admin.pass = 'putanmd5hashhere' [xcache]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache 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 = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off

Todo: Reikia šiek tiek išplėsti ir nuoroda į xcache.

Atsarginės kopijos

Yra labai mažai svarbiau nei automatizuotų jūsų svetainės atsarginių kopijų kūrimas. Galbūt galėsite gauti atsarginę kopijavimą iš savo prieglobos paslaugų teikėjo, kurie taip pat yra labai naudingi, bet aš taip pat norėčiau turėti automatines atsargines kopijas.

Sukurkite automatinį atsarginį kopijavimo scenarijų

Aš paprastai pradedu kurti / atsarginių kopijų katalogą, po kurio yra / atsarginių kopijų / failų katalogas. Galite koreguoti šiuos kelius, jei norite.

mkdir -p /backups/files

Dabar sukurkite atsarginių kopijų šabloną atsarginių kopijų kataloge:

vi /backups/backup.sh

Į failą įtrauksite toliau nurodytus kelius ir mysqldump slaptažodį:

#!/bin/sh THEDATE=`date +%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 find /backups/files/site* -mtime +5 -exec rm {}; find /backups/files/db* -mtime +5 -exec rm {};

Pagal scenarijų pirmiausia sukuriamas datos kintamasis, taigi visi failai bus pavadinti ta pačia vienintelei atsarginei kopijai, tada išsiunčiama į duomenų bazę, pakeičiami žiniatinklio failai ir gzipsami. Rasti komandas naudojamas pašalinti bet kokius failus, senesnes nei 5 dienas, nes nenorite, kad jūsų diskas paleistumėte vietą.

Padarykite vykdomąjį scenarijų paleisdami šią komandą:

chmod u+x /backups/backup.sh

Kitas turėsite priskirti jį automatiškai paleisti cron. Įsitikinkite, kad naudojate paskyrą, kuri turi prieigą prie atsarginių kopijų katalogo.

crontab -e

Į crontab pridėkite šią eilutę:

1 1 * * * /backups/backup.sh

Galite išbandyti scenarijų iš anksto, paleisdami jį prisijungdami prie vartotojo abonemento. (Paprastai aš paleisiu atsargines kopijas kaip šakninį)

Sinchronizuokite atsargines kopijas išjungus svetainę naudodamiesi "Rsync"

Dabar, kai paleidžiate savo serverio automatines atsargines kopijas, galite sinchronizuoti juos kur nors kitur naudodami rsync įrankį. Jūs norėsite perskaityti šį straipsnį, kaip nustatyti automatinį prisijungimą naudodami SSH klavišus: pridėkite viešą SSH klavišą prie nuotolinio serverio į vieną komandą

Galite išbandyti šią komandą, paleisdami šią komandą į "Linux" ar "Mac" įrenginį kitoje vietoje (turiu "Linux" serverį namuose, kuriame aš paleisti)

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

Tai užtruks nemažai laiko, kol bus paleisti pirmą kartą, tačiau pabaigoje jūsų vietinis kompiuteris turėtų turėti failų katalogo kopiją / offsitebackups / kataloge. (Prieš paleisdami scenarijų būtinai sukurkite tą katalogą)

Jūs galite suplanuoti tai pridedant prie crontab eilutės:

crontab -e

Įtraukite šią eilutę, kuri kiekvieną valandą paleis rsync 45 minučių ženkle. Jūs pastebėsite, kad mes naudojame visą kelią į rsync čia.

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

Galite planuoti, kad jis paleidžiamas kitais laikais arba tik vieną kartą per dieną. Tai tikrai priklauso nuo tavęs.

Atkreipkite dėmesį, kad yra daug komunalinių paslaugų, kurios leis jums sinchronizuoti per ssh arba ftp. Jums nereikia naudoti rsync.

Saugumas

Pirmas dalykas, kurį norėtumėte padaryti, yra įsitikinti, kad turite įprastą vartotojo abonementą, kurį galite naudoti per ssh, ir įsitikinkite, kad galite naudoti su, kad pereitumėte prie root. Tai labai blogai idėja leisti tiesioginį prisijungimą root iš ssh.

Išjungti šakninį prisijungimą per SSH

Redaguokite / etc / ssh / sshd_config failą ir ieškokite šios eilutės:

#PermitRootLogin yes

Pakeiskite šią eilutę, kad atrodytų taip:

PermitRootLogin no

Įsitikinkite, kad turite įprastą vartotojo paskyrą ir galite root prisijungti prieš tai, kai atliksite šį pakeitimą, kitaip galite užsikimšti.

Išjunk SSH versiją 1

Nėra jokios priežasties naudoti nieko kito nei SSH 2 versiją, nes ji yra saugesnė nei ankstesnės versijos. Redaguokite / etc / ssh / sshd_config failą ir ieškokite tokio skirsnio:

#Protocol 2,1 Protocol 2

Įsitikinkite, kad naudojate tik 2 protokolą, kaip parodyta.

Iš naujo paleiskite SSH serverį

Dabar reikės iš naujo paleisti SSH serverį, kad šis įsigalios.

/etc/init.d/sshd restart

Patikrinkite, ar nėra atvirų uostų

Galite naudoti šią komandą, norėdami pamatyti, kuriuos serverius klauso:

netstat -an | grep LISTEN

Jūs tikrai neturėtumėte nieko klausytis, išskyrus uostus 22, 80, o gal ir 8443 pleskui.

Nustatykite ugniasienę

Pagrindinis straipsnis:"Iptables" naudojimas sistemoje "Linux"

Galite pasirinktinai nustatyti iptables užkardą, kad užblokuotumėte daugiau ryšių. Pavyzdžiui, paprastai blokuoju prieigą prie kitų uostų, išskyrus iš savo darbo tinklo. Jei turite dinaminį IP adresą, jūs norėsite to išvengti.

Jei iki šiol jau vykdote visus šio vadovo veiksmus, greičiausiai nebūtinai turite pridėti ugniasienę į mišinį, tačiau gerai suprasti jūsų parinktis.

Taip pat žiūrėkite

"Iptables" naudojimas sistemoje "Linux"

Nuorodos

  • DV serverio optimizavimas (mediatemple.net)
  • XCache

Rekomenduojamas: