12Sep
Kada dobijete posvećeni virtualni poslužitelj za pokretanje svoje web stranice, šanse su dobre da je konfiguriran za sve, a ne prilagođene za maksimiziranje performansi za pokretanje web stranice.
- Sadržaj
[skrivanje]
- 1 Pregled
- 2 Linux konfiguracija
- 2.1 Onemogući DNS
- 2.2 Onemogućiti SpamAssassain
- 2.3 Onemogućiti xinetd
- 2.4 Ograničiti Plesk korištenje memorije
- 2.5 Onemogućiti ili isključiti Plesk( opcionalno)
- 3 MySQL konfiguracija
- 3.1 Omogućiti Cache upit
- 3.2 Onemogućiti TCP / IP
- 4 Konfiguracija Apache
- 5 PHP konfiguracija
- 5.1 Uklanjanje nepotrebnih PHP modula
- 5.2 PHP Cache opcode
- 6 Sigurnosne kopije
- 6.1 Stvaranje skripte za automatsku izradu sigurnosnih kopija
- 6.2 Sigurnosno kopiranje sigurnosnih kopija s Rsync
- 7 Sigurnost
- 7.1 Onemogućavanje korijenaPrijava preko SSH
- 7.2 Onemogućivanje SSH verzije 1
- 7.3 Ponovno pokretanje SSH poslužitelja
- 7.4 Provjera otvorenih ulaza
- 7.5 Postavljanje vatrozida
- 8 Vidi također
- 9 References
Pregled
Postoji nekoliko problematičnih područja u kojima padamot za maksimiziranje performansi:
- Linux konfiguracija
Obično se izvode usluge koje ne trebaju biti, gubitak memorije koja bi se mogla koristiti za više veza. - MySQL konfiguracija
Često se zadane postavke temelje na malom poslužitelju, možemo dodati nekoliko ključnih izmjena koje će mnogo povećati učinkovitost. - Apache konfiguracija
Po defaultu većina pružatelja hostinga instalira apache sa gotovo svakim instaliranim modulom. Nema razloga za učitavanje modula ako ih nikada nećete koristiti. - PHP konfiguracija
Zadana PHP konfiguracija slično je preopterećena, obično je instalirano više tona nepotrebnih dodatnih modula. - PHP opcode cache
Umjesto da PHP dozvoli recompile skripti svaki put, opcode cache će cache skripte skripte u memoriji za ogromne performanse potaknuti. - Sigurnosne kopije
Treba vjerojatno postaviti neke automatizirane sigurnosne kopije, budući da vaš davatelj usluge hostinga neće to učiniti za vas.
Sigurnost
Naravno, Linux je dovoljno siguran prema zadanim postavkama, ali obično postoje neke ozbiljne sigurnosne poteškoće koje možete popraviti s nekoliko brzih postavki.
Linux konfiguracija
Postoji dosta podešavanja koje možete učiniti, što će neznatno varirati ovisno o poslužitelju koji koristite. Ovi ugađaji služe za poslužitelj koji koristi CentOS, ali bi trebali raditi za većinu DV poslužitelja.
Onemogući DNS
Ako vaš davatelj usluge hostinga upravlja DNS-om za svoju domenu( vjerojatno), tada možete onemogućiti pokretanje DNS servisa.
onemogućuje dns /etc/init.d/ nazvanu stop chmod 644 /etc/init.d/ pod nazivomChmod naredba uklanja dozvolu za izvršavanje iz skripte, čime se zaustavlja pokretanje pri pokretanju.
Onemogući SpamAssassain
Ako ne upotrebljavate račune e-pošte na samom poslužitelju, ne biste smetali pokretanju alata za sprječavanje neželjene pošte.(Također biste trebali provjeriti Google Apps, puno bolje e-mail rješenje)
/etc/init.d/ psa-spamassassin zaustaviti chmod 644 /etc/init.d/ psa-spamassassinOnemogućiti xinetd
xinetd proces sadrži niz drugih procesa, od kojih niti jedan nije koristan za tipičan web poslužitelj.
/etc/init.d/ xinetd zaustavljanje chmod 644 /etc/init.d/ xinetdOgraničenje uporabe Plesk memorije
Ako koristite plesk ploču, možete ga prisiliti na manje memorije dodavanjem datoteke opcija.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeDodajte sljedeće retke u datoteku:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Imajte na umu da se ova opcija zna da radi na MediaTemple DV poslužiteljima, ali nije provjerena ni na jednoj drugoj.(Vidi Reference)
Onemogući ili isključiti Plesk( opcionalno)
Ako koristite samo Plesk jednom godišnje, postoji vrlo malo razloga da ga ostavite da radi na sve. Napominjemo da je ovaj korak potpuno opcionalan i malo napredniji.
Pokrenite sljedeću naredbu da isključite plesk:
/etc/init.d/ psa stopMožete onemogućiti njegovo pokretanje pri pokretanju tako da pokrenete sljedeću naredbu:
chmod 644 /etc/init.d/ psaImajte na umu da ako ga onemogućite, ne možete ga pokrenuti ručno bezmijenjajuće dozvole datoteka natrag( chmod u + x).
MySQL konfiguracija
Omogući Cache upitnika
Otvorite /etc/ my.cnf datoteku i dodajte sljedeće retke u [mysqld] odjeljak kao što je ovaj:
[mysqld] query-cache-type = 1 query-cache-size = 8MMožetedodajte više memorije u predmemoriju upita ako želite, ali nemojte previše koristiti.
Onemogući TCP / IP
Iznenađujuće broj domaćinstva omogućuju pristup MySQL-u na TCP / IP po defaultu, što nema smisla za web stranicu. Možete shvatiti hoće li mysql slušati TCP / IP pokretanjem sljedeće naredbe:
netstat -an |grep 3306Da biste onemogućili, dodajte sljedeću liniju na /etc/ my.cnf datoteku:
preskočenje umrežavanjeApache konfiguracija
Otvorite svoju httpd.conf datoteku koja se često nalazi u /etc/httpd/conf/ httpd.conf
Pronađite redak koji izgleda ovako:
Timeout 120I promijenite to na sljedeći način:
Timeout 20Sada pronađite odjeljak koji uključuje te retke i prilagodite se na nešto slično:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000PHP konfiguracija
Jedna od stvariimajte na umu prilikom ugađanja poslužitelja na PHP platformi je da svaki pojedini Apache nit će učitati PHP na zasebnom mjestu u memoriji. To znači da ako neiskorišteni modul doda 256 k memorije u PHP, preko 40 apache niti troši 10 MB memorije.
Uklanjanje nepotrebnih PHP modula
Morat ćete pronaći datoteku php.ini koja se obično nalazi na /etc/ php.ini( Imajte na umu da će se na nekim distribucijama nalaziti /etc/php.d/ direktorij s brojem. ini datoteka,svaki modul
Ispričajte sve linije loadmodule s ovim modulima:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube loader
- json
- imap
- ldap
- ncurses
Todo: Dodajte više informacija ovdje
PHP opcode cache
su brojne opcode sprema koje možete koristiti, uključujući APC, eAccelerator i Xcache, posljednji je moj osobni sklonost zbog stabilnosti.
Preuzmite xcache i izvadite ga u direktorij, a zatim pokrenite sljedeće naredbe iz izvora xcachedirektorij:
phpize. /configure --enable-xcache make make installOtvorite datoteku php.ini idodajte novi odjeljak za xcache. Morat ćete prilagoditi putove ako su vaši php moduli učitani negdje drugdje.
vi /etc/ php.iniDodajte sljedeći odjeljak u datoteku:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "moje korisničko ime" xcache.admin.pass = "putanmd5hashhere"[xcache];Promijeni xcache.size za podešavanje veličine cache opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0;Promijeni xcache.var_size za podešavanje veličine promjenjive predmemorije 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 = Isključeno xcache.readonly_protection =Na xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = Na xcache.stat = Na xcache.optimizer = IsključenoTodo: Trebate malo proširiti i povezati xcache u referencama.
Sigurnosne kopije
Postoji vrlo malo važnije od automatiziranih sigurnosnih kopija vaše web stranice. Vi svibanj biti u mogućnosti da biste dobili snimku snapshot od vašeg hosting providera, koji su također vrlo korisne, ali volim imati automatizirane sigurnosne kopije kao dobro.
Stvaranje automatizirane skripte za izradu sigurnosnih kopija
Najčešće počinjem stvaranjem mape / backups, s imenom /backups/ datotekama ispod nje. Možete ih prilagoditi ako želite.
mkdir -p /backups/ datotekeSada stvorite backup.sh skriptu u direktoriju sigurnosnih kopija:
vi /backups/ backup.shDodajte sljedeću datoteku, prilagodite putove i lozinku mysqldump po potrebi:
#!/bin/ sh THEDATE = `datum +% 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/ moj web-put / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar pronađi /backups/files/ web mjesto * -mtime +5 -exec rm{ } \;pronađite /backups/files/ db * -mtime +5 -exec rm{ } \;Skripta će najprije stvoriti varijablu datuma, tako da će sve datoteke biti imenovane za jednu sigurnosnu kopiju, a zatim odlagali bazu podataka, tars up web datoteke i gzips njima. Naredbe za pronalaženje koriste se za uklanjanje svih datoteka starijih od 5 dana, jer ne želite da vaš pogon nestane iz svega.
Napravite izvršnu skriptu pokretanjem sljedeće naredbe:
chmod u + x /backups/ backup.shPotom ga morate dodijeliti za automatsko pokretanje pomoću cron. Pazite da koristite račun koji ima pristup direktoriju sigurnosnih kopija.
crontab -eDodajte sljedeću liniju na crontab:
1 1 * * * /backups/ backup.shMožete testirati skriptu ispred vremena tako da ga pokrenete dok ste prijavljeni na korisnički račun.(Obično izvodim sigurnosne kopije kao root)
Sigurnosne kopije sinkronizacije izvan radnog mjesta s Rsyncom
Sada kada imate automatizirane sigurnosne kopije poslužitelja, možete ih sinkronizirati negdje drugdje pomoću uslužnog programa rsync.Ćelite pročitati ovaj članak o tome kako postaviti ssh tipke za automatsku prijavu: Dodajte javni SSH ključ na daljinski poslužitelj u jednoj naredbi
Možete testirati ovo tako da pokrenete ovu naredbu na Linux ili Mac računalu na drugom mjestu( Iimam linux server kod kuće, gdje sam pokrenuo ovo)
rsync -a [email protected]: /backups/files/ * /offsitebackups/To će potrajati dosta vremena da se pokrene prvi put, ali na kraju vašem lokalnom računalu treba imati kopijuu direktoriju datoteka u /offsitebackups/ direktoriju.(Obavezno stvorite taj direktorij prije pokretanja skripte)
Možete ovo zakazati tako da ga dodate u crontab liniju:
crontab -eDodajte sljedeću liniju koja će izvršiti rsync svaki sat u 45 minuta. Primijetit ćete da ovdje koristimo cijeli put do rsync.
45 * * * * /usr/bin/ rsync -a [email protected]: /backups/files/ * /offsitebackups/Možete ga zakazati za rad u drugo vrijeme ili samo jednom dnevno. To je do tebe.
Imajte na umu da postoji mnogo uslužnih programa koji će vam omogućiti sinkronizaciju putem ssh ili ftp. Ne morate koristiti rsync.
Sigurnost
Prvo što želite učiniti je pobrinite se da imate redoviti korisnički račun za korištenje putem ssh-a i provjerite možete li koristiti su da biste se prebacili na root. To je vrlo loša ideja za dopuštanje izravne prijave za korijenje preko ssh-a.
Onemogući korijensku prijavu preko SSH-a
Uredite datoteku /etc/ssh/ sshd_config i potražite sljedeću liniju:
#PermitRootLogin daPromijenite tu liniju da izgleda ovako:
PermitRootLogin neUvjerite se da imate redovni korisnički račun i možete seprije nego što napravite tu promjenu, inače se možete zaključati.
Onemogući verziju SSH verzije 1
Stvarno nema razloga koristiti ništa drugo osim SSH verzije 2 jer je sigurnije od prethodnih verzija. Uredite /etc/ssh/ sshd_config datoteku i potražite sljedeći odjeljak:
#Protocol 2,1 Protokol 2Pazite da koristite samo Protokol 2 kao što je prikazano.
Ponovno pokretanje SSH poslužitelja
Sada ćete morati ponovo pokrenuti SSH poslužitelj kako bi to učinio učinak.
/etc/init.d/ sshd restartProvjerite otvorene ulaze
Možete koristiti sljedeću naredbu da biste vidjeli koji portovi služe za slušanje:
netstat -an |grep SLUŠAJStvarno ne biste trebali ništa slušati osim luka 22, 80 i možda 8443 za plesk.
Postavljanje vatrozida
Glavni članak: Korištenje iptables na Linuxu
Možete po želji postaviti vatrozid iptables da biste blokirali više veza. Na primjer, obično blokirajem pristup svim drugim lukama, a ne mojoj radnoj mreži. Ako imate dinamičku IP adresu, želite izbjeći tu opciju.
Ako ste već dosad slijedili sve korake u ovom vodiču, vjerojatno nije potrebno dodati vatrozid za miks, ali je dobro razumjeti vaše mogućnosti.
Vidi također
- Korištenje iptables na Linuxu
Reference
- Optimiziranje DV poslužitelja( mediatemple.net)
- XCache