Kada dobijete posvećeni virtualni poslužitelj za pokretanje svoje web stranice, šanse su dobre da je konfiguriran za sve, a ne prilagođene kako bi se povećala izvedba za pokretanje web stranice.
Sadržaj[sakriti]
|
Postoji niz problema s kojima želimo maksimizirati izvedbu:
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.
Ako vaš davatelj usluge hostinga upravlja DNS-om za vašu domenu (vjerojatno), tada možete onemogućiti pokretanje DNS servisa.
onemogućiti dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Naredba chmod uklanja dozvolu za izvršavanje iz skripte, čime se sprječava pokretanje pri pokretanju.
Ako ne upotrebljavate račune e-pošte na samom poslužitelju, ne biste trebali trpjeti alate za sprječavanje neželjene pošte. (Također biste trebali provjeriti Google Apps, mnogo bolje e-rješenje)
/etc/init.d/psa-spamassassin zaustavljanje chmod 644 /etc/init.d/psa-spamassassin
Postupak xinetd sadrži niz drugih procesa, od kojih niti jedan nije koristan za tipičan web poslužitelj.
/etc/init.d/xinetd zaustaviti chmod 644 /etc/init.d/xinetd
Ako koristite plesk ploču, možete ga prisiliti na manje memorije dodavanjem datoteke opcija.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Datoteku dodajte sljedeće retke:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Imajte na umu da se ova opcija zna da radi na MediaTemple DV poslužiteljima, ali nije provjerena ni na jednoj drugoj. (Vidi reference)
Ako iskoristite samo Plesk jednom godišnje, postoji vrlo malo razloga da ga ostavite da radi uopće. Napominjemo da je ovaj korak potpuno opcionalan i malo napredniji.
Pokrenite sljedeću naredbu da isključite plesk:
/etc/init.d/psa zaustaviti
Možete onemogućiti njegovo pokretanje pri pokretanju pokretanjem sljedeće naredbe:
chmod 644 /etc/init.d/psa
Imajte na umu da ako ga onemogućite, ne možete ga ručno pokrenuti bez promjene dozvola za datoteke natrag (chmod u + x).
Otvorite /etc/my.cnf datoteku i dodajte sljedeće retke u [mysqld] odjeljak kao što je ovaj:
[mysqld] query-cache-type = 1 upit-predmemorija-veličina = 8M
Ako želite, dodajte više memorije u predmemoriju upita, ali ne previše.
Iznenađujući broj domaćinstva omogućava 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 3306
Da biste onemogućili, dodajte sljedeći redak u datoteku /etc/my.cnf:
preskočiti-umrežavanje
Otvorite svoju httpd.conf datoteku, koja se često nalazi u /etc/httpd/conf/httpd.conf
Pronađite redak koji izgleda ovako:
Timeout 120
I promijenite ga na ovo:
Timeout 20
Sada pronađite odjeljak koji sadrži te retke i prilagodite se slično:
StartServeri 2 MinSpareServeri 2 MaxSpareServeri 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
Jedna od stvari koje treba imati na umu prilikom ugađanja poslužitelja na PHP platformi je da svaka pojedinačna 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.
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 pojaviti /etc/php.d/ direktorij s brojem .ini datoteka, jedan za svaki modul.
Komentirajte sve linije loadmodule s ovim modulima:
Todo: Dodajte više informacija ovdje.
Postoje brojne opkobne spremiće koje možete koristiti, uključujući APC, eAccelerator i Xcache, a posljednja je moja osobna sklonost zbog stabilnosti.
Preuzmite xcache i izvadite ga u direktorij, a zatim pokrenite sljedeće naredbe iz direktorij izvora xcache:
phpize ./configure --enable-xcache napraviti make install
Otvorite datoteku php.ini i dodajte novi odjeljak za xcache. Morat ćete prilagoditi putove ako su vaši php moduli učitani negdje drugdje.
vi /etc/php.ini
Dodajte sljedeći odjeljak u datoteku:
[xcache-common] zend_extension = / usr / lib / php / moduli / 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čeno
Todo: Trebate ovo malo proširiti i povezati se s xcache u referencama.
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.
Ja obično počinjem stvaranjem / backups direktorija, s / backups / files direktorija ispod njega. Možete ih prilagoditi ako želite.
mkdir -p / sigurnosne kopije / datoteke
Sada izradite backup.sh skriptu u direktoriju sigurnosnih kopija:
vi /backups/backup.sh
Dodajte sljedeću datoteku, prilagodite putove i lozinku mysqldump po potrebi:
# / bin / sh THEDATE = "datum +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /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 / sigurnosna kopija / datoteke / web mjesto * -mtime +5 -exec rm \; pronađi / sigurnosna kopija / datoteke / 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.
Provjerite izvršnu skriptu pokretanjem sljedeće naredbe:
chmod u + x /backups/backup.sh
Zatim ćete je morati dodijeliti automatskom prikazivanju pomoću cron-a. Pazite da koristite račun koji ima pristup direktoriju sigurnosnih kopija.
crontab-e
Dodajte sljedeću liniju u crontab:
1 1 * * * /backups/backup.sh
Možete testirati skriptu ispred vremena tako da ga pokrenete dok ste prijavljeni na korisnički račun. (Obično izvodim sigurnosne kopije kao root)
Sada kada imate automatizirane sigurnosne kopije poslužitelja, možete ih sinkronizirati negdje drugdje pomoću uslužnog programa rsync. Vi ćete ž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
To možete testirati tako da pokrenete ovu naredbu na Linux ili Mac računalu na drugom mjestu (imam Linux poslužitelj kod kuće, gdje sam pokrenuo ovo)
rsync -a [email protected]: / backups / files / * / offsitebackups /
To će potrajati prilično malo vremena da se pokrene prvi put, ali na kraju vašem lokalnom računalu treba imati kopiju direktorija datoteka u / offsitebackups / direktoriju. (Obavezno stvorite taj direktorij prije pokretanja skripte)
To možete zakazati tako da ga dodate u crontab liniju:
crontab-e
Dodajte 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]: / sigurnosna kopija / datoteke / * / 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.
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.
Uredite datoteku / etc / ssh / sshd_config i potražite sljedeću liniju:
#PermitRootLogin da
Promijenite tu retku da izgleda ovako:
PermitRootLogin br
Pobrinite se da imate redoviti korisnički račun i možete se suziti prije nego izvršite tu promjenu, inače se možete zaključati.
Stvarno nema razloga koristiti ništa drugo osim SSH verzije 2, jer je sigurnije od prethodnih verzija. Uredite datoteku / etc / ssh / sshd_config i potražite sljedeći odjeljak:
# Protokol 2,1 Protokol 2
Pazite da koristite samo Protokol 2 kao što je prikazano.
Sada ćete morati ponovo pokrenuti SSH poslužitelj kako bi ovo postalo učinkovito.
/etc/init.d/sshd restart
Možete koristiti sljedeću naredbu da biste vidjeli na kojim se portovima sluša slušalica:
netstat -an | grep SLUŠAJTE
Stvarno ne biste trebali ništa slušati osim luka 22, 80 i možda 8443 za plesk.
Glavni članak:Koristeći 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 pratili sve korake u ovom vodiču, vjerojatno nije potrebno dodati vatrozid za miks, no dobro je razumjeti opcije.