Kun saat omat virtuaaliset palvelimet verkkosivustosi käyttämiseen, mahdollisuudet ovat hyvät, että se on määritetty kaikille, eikä se ole räätälöity maksimoimaan suorituskyvyn verkkosivuston käyttämiseen.
Sisällys[piilottaa]
|
Yleiskatsaus
On monia ongelma-alueita, joissa haluamme maksimoida suorituskyvyn:
- Linux-kokoonpano On yleensä käytössä olevia palveluita, joita ei tarvitse olla, tuhlaa muistia, jota voitaisiin käyttää useampiin yhteyksiin.
- MySQL-kokoonpano Usein oletusasetukset perustuvat pieneen palvelimeen, voimme lisätä muutamia keskeisiä muutoksia suorituskyvyn parantamiseksi paljon.
- Apache-kokoonpano Oletuksena useimmat hosting-palveluntarjoajat asentavat apachea lähes jokaisen asennetun moduulin kanssa. Ei ole syytä ladata moduuleja, jos et koskaan käytä niitä.
- PHP-kokoonpano Oletusarvoinen PHP-kokoonpano on samalla tavalla paisunut, yleensä on olemassa tarpeettomia ylimääräisiä moduuleja.
- PHP Opcode Cache Sen sijaan, että PHP pystyy kääntämään komentosarjat joka kerta, opcode-välimuisti välittää muistiin kootut komentosarjat suurille tehostamistoille.
- varmuuskopiot Olisi todennäköisesti asetettava joitain automaattisia varmuuskopioita, koska palveluntarjoaja ei aio tehdä sitä sinulle.
- turvallisuus Toki Linux on riittävän turvallinen oletuksena, mutta yleensä on joitain hämmästyttäviä tietoturvaongelmia, joita voit korjata muutamalla nopealla asetuksella.
Linux-kokoonpano
Voit tehdä useita versioita, jotka vaihtelevat hieman käyttämäsi palvelimen mukaan. Nämä tweaksit ovat palvelimelle, joka käyttää CentOS-ohjelmaa, mutta niiden pitäisi toimia useimpiin DV-palvelimiin.
Poista DNS käytöstä
Jos palveluntarjoaja käsittelee verkkotunnuksesi DNS-koodin (todennäköistä), voit poistaa DNS-palvelun käytöstä.
disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Chmod-komento poistaa komentosarjan toteutusluvan, estää sen käynnistyksen käynnistyksen yhteydessä.
Poista SpamAssassain käytöstä
Jos et käytä sähköpostitilejä palvelimellasi, sinun ei pidä häiritä roskapostiviestityökalujen käyttämistä. (Lisäksi kannattaa tarkistaa Google Apps, paljon parempi sähköpostiohjelma)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Poista xinetd käytöstä
Xinetd-prosessissa on useita muita prosesseja, joista mikään ei ole hyödyllinen tyypilliselle web-palvelimelle.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Rajoita Plesk-muistin käyttö
Jos käytät plesk-paneelia, voit pakottaa sen käyttämään vähemmän muistia lisäämällä asetustiedosto.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Lisää tiedostoon seuraavat rivit:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Huomaa, että tämän vaihtoehdon tiedetään toimivan MediaTemple DV -palvelimilla, mutta sitä ei ole tarkistettu mihinkään muuhun. (Katso viitteet)
Poista tai poista käytöstä Plesk (valinnainen)
Jos käytät Pleskia vain kerran vuodessa, on hyvin vähän syytä jättää se toimimatta lainkaan. Huomaa, että tämä vaihe on täysin valinnainen ja hieman kehittyneempi.
Suorita seuraava komento poistaaksesi plesk:
/etc/init.d/psa stop
Voit poistaa sen käytöstä käynnistyksen yhteydessä suorittamalla seuraavan komennon:
chmod 644 /etc/init.d/psa
Huomaa, että jos poistat sen käytöstä, et voi käynnistää sitä manuaalisesti muuttamatta tiedostojen käyttöoikeuksia takaisin (chmod u + x).
MySQL-kokoonpano
Ota kyselyvälimuisti käyttöön
Avaa /etc/my.cnf -tiedosto ja lisää seuraavat rivit [mysqld] -osioon seuraavasti:
[mysqld] query-cache-type = 1 query-cache-size = 8M
Voit lisätä muistia kyselyvälimuistiin, jos haluat, mutta älä käytä liikaa.
Poista TCP / IP käytöstä
Yllättävän joukko isäntiä mahdollistaa pääsyn MySQL: hen TCP / IP: ssä oletuksena, mikä ei ole järkeä verkkosivustolle. Voit selvittää, onko mysql kuuntelee TCP / IP: tä suorittamalla seuraavan komennon:
netstat -an | grep 3306
Poista käytöstä lisäämällä seuraava rivi /etc/my.cnf -tiedostoon:
skip-networking
Apache-kokoonpano
Avaa httpd.conf-tiedosto, joka löytyy usein /etc/httpd/conf/httpd.conf
Etsi seuraava rivi:
Timeout 120
Ja muuttakaa se tähän:
Timeout 20
Löydä nyt osio, joka sisältää nämä rivit ja säädä jotain vastaavaa:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP-määritys
Yksi niistä asioista, jotka on pidettävä mielessä, kun PHP-alustalle asetetaan palvelinta, on se, että jokainen apache-lanka lataa PHP: n erilliseen sijaintiin muistiin. Tämä tarkoittaa sitä, että jos käyttämättömät moduulit lisäävät 256 k muistia PHP: hen, yli 40 apache-lankaa tuhlaat 10MB muistia.
Poista tarpeettomat PHP-moduulit
Sinun on löydettävä php.ini-tiedosto, joka löytyy tavallisesti osoitteesta /etc/php.ini (Huomaa, että joissakin jakeluissa on /etc/php.d/ hakemisto, jossa on useita.ini-tiedostoja, yksi kullekin moduulille.
Kommentoida kaikkia moduulimalleja näiden moduulien kanssa:
- odbc
- SNMP
- SAN
- odbc pdo
- mysqli
- ioncube-loader
- json
- imap
- ldap
- ncurses
Todo: Lisää lisätietoja tästä.
PHP Opcode Cache
Voit käyttää useita opcode-välimuistit, kuten APC, eAccelerator ja Xcache, joista viimeinen on oma persoonallisuuteni vakauden vuoksi.
Lataa xcache ja poista se hakemistoon ja suorita sitten seuraavat komennot xcache-lähdekoodista:
phpize./configure --enable-xcache make make install
Avaa php.ini-tiedosto ja lisää uusi xcache-osio. Sinun on säädettävä polkuja, jos php-moduulisi on ladattu muualta.
vi /etc/php.ini
Lisää tiedostoon seuraava osa:
[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: Tarve laajentaa tätä hieman ja linkittää xcache viitteisiin.
varmuuskopiot
On hyvin vähän tärkeämpää kuin varmuuskopioida verkkosivustosi. Saatat joutua ottamaan tilannevedoksen varmuuskopioita palveluntarjoajaltasi, joka on myös erittäin hyödyllinen, mutta haluan myös automatisoidut varmuuskopiot.
Luo automaattinen varmuuskopiointiohjelma
Aloitan tavallisesti luomalla / varmuuskopiointihakemiston, jonka alla on / backups / files -hakemisto. Voit säätää näitä polkuja, jos haluat.
mkdir -p /backups/files
Luo varmuuskopiointihakemistosta varmuuskopio.sh-komentosarjan.
vi /backups/backup.sh
Lisää seuraava tiedosto tiedostoon, säädä polut ja mysqldump-salasana tarpeen mukaan:
#!/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 {};
Skripti luo ensin päivämäärän, joten kaikki tiedostot nimetään samalle varmuuskopiolle, sitten kaatavat tietokannat, tallentavat web-tiedostot ja gzipit. Etsikomentoja käytetään poistamaan kaikki yli 5 päivää vanhat tiedostot, koska et halua, että asema loppuu.
Tee käsikirjoitus suoritettavaksi suorittamalla seuraava komento:
chmod u+x /backups/backup.sh
Seuraavaksi sinun on annettava sille automaattinen suorittaminen cron: lla. Varmista, että käytät tiliä, jolla on pääsy varmuuskopiointihakemistoon.
crontab -e
Lisää seuraava rivi crontab:
1 1 * * * /backups/backup.sh
Voit testata komentosarjan etukäteen suorittamalla sen kirjautuessasi sisään käyttäjätilille. (Suorita varmuuskopiot pääkäyttäjänä)
Synkronoi varmuuskopiot Off-Sitein avulla Rsyncillä
Kun olet suorittanut palvelimesi automaattiset varmuuskopiot, voit synkronoida ne jossakin muualla käyttämällä rsync-apuohjelmaa. Haluat lukea tämän artikkelin ssh-avainten määrittämisestä automaattiseen sisäänkirjautumiseen: Lisää julkinen SSH-avain etäpalvelimeen yhdellä komennolla
Voit testata tämän suorittamalla tämän komennon linux- tai Mac-koneella toisessa paikassa (minulla on linux-palvelin kotona, missä ajetaan tämä)
rsync -a [email protected]:/backups/files/* /offsitebackups/
Tämä kestää jonkin aikaa ensimmäisen kerran, mutta lopussa paikallisessa tietokoneessa on oltava kopio tiedoston hakemistosta / offsitebackups / hakemistosta. (Muista luoda hakemisto ennen skriptin suorittamista)
Voit ajoittaa tämän lisäämällä sen crontab-riviin:
crontab -e
Lisää seuraava rivi, joka suorittaa rsyncin joka tunti 45 minuutin aikana. Huomaat, että käytämme täysiä reittiä rsyncille täällä.
45 * * * * /usr/bin/rsync -a [email protected]:/backups/files/* /offsitebackups/
Voit ajoittaa sen suoritettavaksi eri aikaan tai vain kerran päivässä. Se on todella sinun.
Huomaa, että on paljon apuohjelmia, joiden avulla voit synkronoida ssh: n tai ftp: n kautta. Sinun ei tarvitse käyttää rsynkiä.
turvallisuus
Ensimmäinen asia, jonka haluat tehdä, on varmistaa, että sinulla on säännöllinen käyttäjätili ssh: n kautta, ja varmista, että voit käyttää su-näppäintä päästäksesi juureen. On erittäin huono idea sallia suorat kirjautumiset rootille ssh: n varalta.
Poista pääkäyttäjä SSH: n käytöstä
Muokkaa / etc / ssh / sshd_config -tiedostoa ja etsi seuraava rivi:
#PermitRootLogin yes
Muuta tämä rivi näyttääksesi näin:
PermitRootLogin no
Varmista, että sinulla on säännöllinen käyttäjätili ja voit tehdä sen ennen kuin teet tämän muutoksen, muuten saatat lukita itsesi ulos.
Poista SSH-version 1 käytöstä
Ei ole mitään syytä käyttää mitään muuta kuin SSH-versiota 2, koska se on turvallisempi kuin aiemmat versiot. Muokkaa / etc / ssh / sshd_config -tiedostoa ja etsi seuraava osio:
#Protocol 2,1 Protocol 2
Varmista, että käytät vain protokollaa 2, kuten on näytetty.
Käynnistä SSH-palvelin uudelleen
Nyt sinun on käynnistettävä SSH-palvelin uudelleen, jotta tämä tulee voimaan.
/etc/init.d/sshd restart
Tarkista avoimet portit
Voit tarkastella seuraavia komentoja, mitä portteja palvelin kuuntelee:
netstat -an | grep LISTEN
Sinulla ei todellakaan olisi mitään kuunnella muita kuin portteja 22, 80 ja mahdollisesti 8443 plesk.
Aseta palomuuri
Pääartikkeli:Iptablesin käyttö Linuxissa
Voit halutessasi asentaa iptables-palomuurin estämään useampia yhteyksiä. Esimerkiksi estäisin pääsyn muille satamille kuin työverkostani. Jos sinulla on dynaaminen IP-osoite, haluat välttää tämän vaihtoehdon.
Jos olet jo noudattanut kaikkia tähän oppaan vaiheita, ei todennäköisesti ole tarpeen lisätä palomuuria sekaan, mutta on hyvä ymmärtää vaihtoehtoja.
Katso myös
Iptablesin käyttö Linuxissa
Viitteet
- DV-palvelimen optimointi (mediatemple.net)
- XCache