12Sep
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]
|
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/ poimenovanUkaz 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-spamassassinOnemogoč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/ xinetdLimit 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.includeV datoteko dodajte naslednje vrstice:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Upoš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 stopLahko ga onemogočite pri zagonu ob zagonu z ukazom naslednji ukaz:
chmod 644 /etc/init.d/ psaUpoš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 = 8MLahkododajte 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-networkingApache konfiguracija
Odprite datoteko httpd.conf, pogosto najdete v /etc/httpd/conf/ httpd.conf
Poiščite vrstico, ki je videti tako:
Časovna omejitev 120in spremenite to na naslednji način:
Timeout 20Zdaj poiščite razdelek, ki vključuje te vrstice, in prilagodite na nekaj podobnega:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000PHP 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 namestitevOdprite 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.iniV 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 = IzklopljenTodo: 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/ datotekeZdaj ustvarite skript backup.sh v imeniku varnostnih kopij:
vi /backups/ backup.shV 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.shNaprej ga morate dodeliti, da ga samodejno zažene cron. Prepričajte se, da uporabljate račun, ki ima dostop do imenika varnostnih kopij.
crontab -eDodajte naslednjo vrstico na crontab:
1 1 * * * /backups/ backup.shSkript 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 -eDodajte 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 daSpremenite to vrstico tako:
PermitRootLogin nePreverite, 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 2Poskrbite, 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 restartPreverite odprta vrata
Za ogled vrat, na katerih posluša strežnik, lahko uporabite naslednji ukaz:
netstat -an |grep LISTENResnič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