12Sep

Potiskanje namenskega virtualnega spletnega strežnika

click fraud protection

Ko dobite namenski virtualni strežnik za zagon svojega spletnega mesta, je verjetno, da je konfiguriran za vse in ni prilagojen za povečanje učinkovitosti delovanja spletnega mesta.

Vsebina

[kazati]

  • 1 Pregled
  • 2 Linuxa Konfiguracija
    • 2,1 onemogočanje DNS
    • 2,2 onemogočanje SpamAssassain
    • 2,3 onemogočanje xinetd
    • 2,4 Mejna Plesk pomnilnik Uporaba
    • 2,5 Onemogoči ali Izklop Plesk( neobvezno)
  • 3 MySQL konfiguracijo
    • 3,1 omogoči Poizvedba predpomnilnika
    • 3.2 Disable TCP / IP
  • 4 Apache konfiguracija
  • 5 PHP konfiguracija
    • 5.1 Odstraniti nepotrebne modul PHP
    • 5.2 PHP Opcode predpomnilnik
  • 6 varnostno kopiranje
    • 6.1 Ustvarjanje samodejnega varnostnega kopiranja
    • 6.2 Sinhronizacija varnostnih kopij izven mesta z Rsync
  • 7 Varnost
    • 7.1 Onemogoči rootPrijava preko SSH
    • 7.2 Onemogoči SSH različico 1
    • 7.3 Ponovni zagon SSH strežnika
    • 7.4 Preverjanje odprtih vrat
    • 7.5 Nastavitev požarnega zidu
  • 8 Glejte tudi
  • 9 Reference
instagram viewer

Pregled

Obstaja več težavnih področij,t, da bi povečali učinkovitost:

  • Konfiguracija Linuxa
    Običajno se izvajajo storitve, ki jih ni potrebno, zapravljanje pomnilnika, ki bi ga lahko uporabili za več povezav.
  • MySQL konfiguracija
    Pogosto privzete nastavitve temeljijo na malem strežniku, lahko dodamo nekaj ključnih sprememb, da povečamo zmogljivost veliko.
  • Apache konfiguracija
    Privzeto večina ponudnikov gostovanja namesti apache s skoraj vsakim nameščenim modulom. Nobenega razloga ni, da naložite module, če jih ne boste nikoli uporabljali.
  • PHP konfiguracija
    Privzeta PHP konfiguracija je podobno napihnjena, navadno je nameščena tona nepotrebnih dodatnih modulov.
  • PHP Opcode Cache
    Namesto, da PHP dovoljuje, da skripte enkrat znova prevede, bo predpomnilnik opcode predpomnilnik shranjenih skript v pomnilniku za ogromne izboljšave zmogljivosti.
  • Backups
    Najbrž bi morali nastaviti nekatere avtomatske varnostne kopije, saj vaš ponudnik gostovanja tega ne bo naredil za vas.
  • Security
    Seveda, Linux je privzeto varen, vendar je navadno nekaj očitnih varnostnih težav, ki jih lahko odpravite z nekaj hitrimi nastavitvami.

Linux Konfiguracija

Obstaja kar nekaj sprememb, ki se bodo nekoliko spremenile glede na strežnik, ki ga uporabljate. Ti potezi so za strežnik s CentOS-om, vendar bi morali delati za večino strežnikov DV.

Onemogoči DNS

Če vaš ponudnik gostovanja obdela DNS za vašo domeno( verjetno), lahko onemogočite storitev DNS.

onemogoči dns /etc/init.d/ imenovan stop chmod 644 /etc/init.d/ poimenovan

Ukaz chmod odstrani dovoljenje za izvajanje iz skripta in ga ustavi pri zagonu.

Onemogoči SpamAssassain

Če ne uporabljate e-poštnih računov na samem strežniku, ne smete zamuditi izvajanja orodij za preprečevanje neželene elektronske pošte.(Prav tako morate preveriti Google Apps, veliko boljšo rešitev za e-pošto)

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

Onemogoči xinetd

Postopek xinetd ima več drugih procesov, od katerih noben ni uporaben za tipičen spletni strežnik.

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

Limit Plesk Uporaba pomnilnika

Če uporabljate pleskalno ploščo, jo lahko prisilite, da uporabi manj pomnilnika, tako da dodate datoteko možnosti.

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

V datoteko dodajte naslednje vrstice:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Upoštevajte, da je znana ta možnost, da deluje na strežnikih MediaTemple DV, vendar ni bila preverjena na nobenem drugem.(Glejte Reference)

Onemogoči ali izklopi Plesk( neobvezno)

Če Plesk uporabljate enkrat letno, je zelo malo razloga, da ga sploh ne bo zagnala. Upoštevajte, da je ta korak popolnoma neobvezen in nekoliko naprednejši.

Za izklop pleskanja zaženite naslednji ukaz:

/etc/init.d/ psa stop

Lahko ga onemogočite pri zagonu ob zagonu z ukazom naslednji ukaz:

chmod 644 /etc/init.d/ psa

Upoštevajte, da če ga onemogočite, ga ne morete zagnati ročnospreminjanje dovoljenj za datoteke nazaj( chmod u + x).

Konfiguracija MySQL

Omogoči predpomnilnik poizvedbe

Odprite datoteko my.cnf /etc/ in v razdelku [mysqld] dodajte naslednje vrstice:

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

Lahkododajte več pomnilnika v predpomnilnik poizvedbe, če želite, vendar ne uporabljajte preveč.

Onemogoči TCP / IP

Presenetljivo število gostiteljev po privzetku omogoči dostop do MySQL na TCP / IP, kar sploh ni smiselno za spletno mesto. Lahko ugotovite, ali mysql posluša na TCP / IP z zagonom naslednjega ukaza:

netstat -an |grep 3306

Če želite onemogočiti, v datoteko my.cnf /etc/ dodajte naslednjo vrstico:

skip-networking

Apache konfiguracija

Odprite datoteko httpd.conf, pogosto najdete v /etc/httpd/conf/ httpd.conf

Poiščite vrstico, ki je videti tako:

Časovna omejitev 120

in spremenite to na naslednji način:

Timeout 20

Zdaj poiščite razdelek, ki vključuje te vrstice, in prilagodite na nekaj podobnega:

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

PHP Konfiguracija

Ena od stvari,imejte v mislih, ko tweaking strežnik na platformi PHP je, da bo vsaka posamezna apacheova nit naložila PHP na ločeno lokacijo v pomnilniku. To pomeni, da če neuporabljen modul dodaja 256k pomnilnika v PHP, čez 40 apache temi izgubljate 10 MB pomnilnika.

Odstranite nepotrebne modulov PHP

Najprej morate najti svojo datoteko php.ini, ki je ponavadi najdena na /etc/ php.ini( upoštevajte, da bo pri nekaterih distribucijah obstajal imenik /etc/php.d/ s številnimi datotekami. ini, eno zavsak modul

Komentiraj vse modele tovornih modulov s temi moduli:

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

Todo: dodajte več informacij tukaj

PHP Opcode Cache

Tamso številne opcode kode, ki jih lahko uporabite, vključno z APC, eAccelerator in Xcache, pri čemer je zadnja moja osebna prednost zaradi stabilnosti.

Prenesite xcache in ga izvlečite v imenik, nato pa zaženite naslednje ukaze iz vira xcacheimenik:

phpize. /configure --enable-xcache naredi namestitev

Odprite datoteko php.ini indodajte nov razdelek za xcache. Poti morate prilagoditi, če so vaši php moduli naloženi od nekje drugje.

vi /etc/ php.ini

V datoteko dodajte ta razdelek:

[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere"[xcache];Spremeni xcache.size, da nastavite velikost predpomnilnika opc. Xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Spremeni xcache.var_size, da nastavite velikost spremenljivega predpomnilnika 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 = Izključeno xcache.readonly_protection =Na xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Na xcache.stat = Na xcache.optimizer = Izklopljen

Todo: Potrebno je malo razširiti in povezati z xcache v referencah.

varnostna kopija

Obstaja zelo malo pomembnejša kot avtomatizirana varnostna kopija vašega spletnega mesta. Morda boste lahko prejeli varnostne kopije vašega ponudnika gostovanja, ki so prav tako zelo koristni, vendar pa raje imam avtomatsko varnostno kopiranje.

Ustvari avtomatizirano varnostno kopijo

Običajno začnem z ustvarjanjem imenika / varnostnih kopij z imenikom datotek /backups/ pod njim. Te poti lahko prilagodite, če želite.

mkdir -p /backups/ datoteke

Zdaj ustvarite skript backup.sh v imeniku varnostnih kopij:

vi /backups/ backup.sh

V datoteko dodajte naslednje datoteke, po potrebi prilagodite poti in mysqldump geslo:

#!/bin/ sh THEDATE = `datum +% d% m% y% H% M` mysqldump-uadmin -pASSWORD 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 najde stran /backups/files/ * -mtime +5 -exec rm{ } \;poiščite /backups/files/ db * -mtime +5 -exec rm{ } \;

Skript bo najprej ustvaril spremenljivko datuma, tako da bodo vse datoteke poimenovane enake za eno varnostno kopijo, nato pa odlagajo bazo podatkov, odprejo spletne datoteke in gzips. Ukazi za iskanje se uporabljajo za odstranitev vseh datotek, starejših od 5 dni, saj ne želite, da se vaš pogon zmanjka prostora.

Izvedite scenarij z izvedbo naslednjega ukaza:

chmod u + x /backups/ backup.sh

Naprej ga morate dodeliti, da ga samodejno zažene cron. Prepričajte se, da uporabljate račun, ki ima dostop do imenika varnostnih kopij.

crontab -e

Dodajte naslednjo vrstico na crontab:

1 1 * * * /backups/ backup.sh

Skript lahko pred tem preskusite tako, da ga zaženete, ko se prijavite v uporabniški račun.(Običajno zaženem varnostne kopije kot root)

Sync Backups Off-Site z Rsync

Zdaj, ko imate samodejno varnostno kopiranje svojega strežnika, jih lahko s pomočjo pripomočka rsync sinhronizirate na nekem drugem mestu. Boste želeli prebrati ta članek o tem, kako nastaviti ssh ključe za samodejno prijavo: Dodaj javni SSH ključ do oddaljenega strežnika v enem ukazu

To lahko preizkusite z zagonom tega ukaza na linux ali Mac računalniku na drugem mestu( Iimam linux strežnik doma, kjer sem to zagnal)

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

To bo trajalo kar nekaj časa za zagon prvič, toda na koncu mora vaš lokalni računalnik imeti kopijoimenika datotek v imeniku /offsitebackups/.(Preden zaženete skript, ustvarite ta imenik)

To lahko razporedite tako, da ga dodate v vrstico crontab:

crontab -e

Dodajte naslednjo vrstico, ki bo vsako uro zagnala rsync pri oznaki 45 minut. Opazili boste, da tukaj uporabljamo celotno pot rsync.

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

Lahko načrtujete, da se bo prikazoval drugje ali samo enkrat na dan. Res je odvisno od vas.

Upoštevajte, da obstaja veliko pripomočkov, ki vam omogočajo sinhronizacijo prek ssh ali ftp. Ni vam treba uporabljati rsync.

Security

Prva stvar, ki jo želite storiti, je zagotoviti, da imate redni uporabniški račun, ki ga želite uporabljati ssh, in poskrbite, da lahko uporabite su, da preklopite na root. Zelo slabo je ideja, da se omogoči neposredna prijava za root nad ssh.

Onemogoči root prijavo nad SSH

Uredite datoteko sshd_config /etc/ssh/ in poiščite naslednjo vrstico:

#PermitRootLogin da

Spremenite to vrstico tako:

PermitRootLogin ne

Preverite, ali imate redni uporabniški račun in lahkopreden naredite to spremembo, sicer se lahko zaklenete.

Onemogoči SSH različico 1

V resnici ni nobenega razloga za uporabo nič drugega kot SSH različica 2, saj je bolj varna kot prejšnje različice. Uredite datoteko sshd_config /etc/ssh/ in poiščite naslednji razdelek:

#Protocol 2,1 Protokol 2

Poskrbite, da uporabljate samo Protokol 2, kot je prikazano.

Ponovni zagon SSH strežnika

Sedaj boste morali znova zagnati strežnik SSH, da bo ta začel veljati.

/etc/init.d/ sshd restart

Preverite odprta vrata

Za ogled vrat, na katerih posluša strežnik, lahko uporabite naslednji ukaz:

netstat -an |grep LISTEN

Resnično ne bi smeli imeti poslušanja razen pristanišč 22, 80 in morda 8443 za plesk.

Nastavitev požarnega zidu

Glavni članek: Uporaba Iptables na Linuxu

Če želite blokirati več povezav, lahko požarni zid iptables nastavite tudi. Na primer, ponavadi blokiram dostop do vseh drugih pristanišč, ki niso iz mojega delovnega omrežja.Če imate dinamični naslov IP, se želite izogniti tej možnosti.

Če ste doslej že upoštevali vse korake v tem vodniku, verjetno ni treba dodati požarnega zidu v mešanico, vendar je dobro razumeti vaše možnosti.

Glej tudi

  • Uporaba Iptables na Linuxu

Reference

  • Optimiranje vašega DV strežnika( mediatemple.net)
  • XCache