Kun saat erillisen virtuaalipalvelimen verkkosivustosi hoitamiseen, on todennäköistä, että se on määritetty kaikille eikä sitä ole mukautettu maksimoimaan verkkosivuston suorituskykyä.
Sisällys[ piilottaa ]
|
Yleiskatsaus
Haluamme maksimoida suorituskyvyn useilla ongelma-alueilla:
-
Linux-kokoonpano
Yleensä käytössä on palveluja, joiden 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
Oletusarvon mukaan useimmat isännöintipalvelujen tarjoajat asentavat apache-ohjelmiston lähes kaikkien asennettujen moduulien kanssa. Ei ole mitään syytä ladata moduuleja, jos et koskaan aio käyttää niitä. -
PHP-kokoonpano
Oletusarvoinen PHP-kokoonpano on samalla tavoin paisutettu, yleensä on asennettu paljon tarpeettomia ylimääräisiä moduuleja. -
PHP Opcode -välimuisti
Sen sijaan, että antaisit PHP: n kääntää komentosarjat uudelleen joka kerta, opcode-välimuisti välimuisti käännetyt komentosarjat muistiin valtavan suorituskyvyn parantamiseksi. -
Varmuuskopiot
Pitäisi todennäköisesti määrittää joitain automaattisia varmuuskopioita, koska palveluntarjoajasi ei aio tehdä sitä puolestasi. -
Turvallisuus
Toki, Linux on oletusarvoisesti riittävän turvallinen, mutta yleensä on joitain räikeitä turvallisuusongelmia, jotka voit korjata muutamalla pika-asetuksella.
Linux-kokoonpano
Voit tehdä melkoisen määrän säätöjä, jotka vaihtelevat hieman käyttämäsi palvelimen mukaan. Nämä muutokset ovat tarkoitettu palvelimelle, joka käyttää CentOSia, mutta niiden pitäisi toimia suurimmalle osalle DV-palvelimia.
Poista DNS käytöstä
Jos palveluntarjoajasi käsittelee verkkotunnuksesi DNS: ää (todennäköisesti), voit poistaa DNS-palvelun käytöstä.
Poista dns käytöstä /etc/init.d/named stop chmod 644 /etc/init.d/named
Chmod-komento poistaa komentosarjan suoritusoikeuden ja estää sen suorittamisen käynnistyksen yhteydessä.
Poista SpamAssassin käytöstä
Jos et käytä sähköpostitilejä itse palvelimellasi, sinun ei pitäisi häiritä roskapostin torjuntatyökalujen käyttöä. (Sinun tulisi myös tarkistaa Google Apps, paljon parempi sähköpostiratkaisu)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Poista xinetd käytöstä
Xinetd-prosessi sisältää useita muita prosesseja, joista mikään ei ole hyödyllinen tyypilliselle verkkopalvelimelle.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Rajoita Pleskin muistin käyttöä
Jos käytät plesk-paneelia, voit pakottaa sen käyttämään vähemmän muistia lisäämällä asetustiedoston.
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 muilla. (Katso Viitteet )
Poista Plesk käytöstä tai poista se käytöstä (valinnainen)
Jos käytät Pleskiä vain kerran vuodessa, ei ole juurikaan syytä jättää sitä käynnissä ollenkaan. Huomaa, että tämä vaihe on täysin valinnainen ja hieman edistyneempi.
Sammuta plesk suorittamalla seuraava komento:
/etc/init.d/psa stop
Voit estää sen suorittamisen 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-määritykset
Ota kyselyvälimuisti käyttöön
Avaa /etc/my.cnf -tiedosto ja lisää seuraavat rivit [mysqld] -osiosi näin:
[mysqld] query-cache-type = 1 query-cache-size = 8M
Voit lisätä kyselyvälimuistiin muistia, jos haluat, mutta älä käytä liikaa.
Poista TCP / IP käytöstä
Yllättävän monet isännät mahdollistavat pääsyn MySQL: ään TCP / IP: llä oletuksena, mikä ei ole järkevää verkkosivustolle. Voit selvittää, kuunteleeko mysql TCP / IP: tä suorittamalla seuraavan komennon:
netstat -an | grep 3306
Poista käytöstä lisäämällä seuraava rivi tiedostoon /etc/my.cnf:
ohita verkottuminen
Apache-määritykset
Avaa httpd.conf-tiedosto, joka löytyy usein tiedostosta /etc/httpd/conf/httpd.conf
Etsi viiva, joka näyttää tältä:
Aikakatkaisu 120
Ja vaihda se näin:
Aikakatkaisu 20
Etsi nyt osa, joka sisältää nämä rivit, ja säädä jotain vastaavaa:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 Palvelinraja 100 MaxClients 100 MaxRequestsPerChild 4000
PHP-määritykset
Yksi niistä asioista, jotka on pidettävä mielessä palvelimen säätämisessä PHP-alustalla, on se, että jokainen apache-lanka lataa PHP: n erilliseen paikkaan muistissa. Tämä tarkoittaa, että jos käyttämätön moduuli lisää 256 kt muistia PHP: hen, 40 apache-säikeessä tuhlataan 10 Mt muistia.
Poista tarpeettomat PHP-moduulit
Sinun on löydettävä php.ini-tiedosto, joka yleensä löytyy osoitteesta /etc/php.ini (Huomaa, että joissakin jakeluissa on /etc/php.d/ -hakemisto, jossa on useita .ini-tiedostoja, yksi kutakin moduulia varten.
Kommentoi kaikki moduulirivit näiden moduulien avulla:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-kuormaaja
- json
- imap
- ldap
- nurssit
Todo: Lisää lisätietoja tähän.
PHP Opcode -välimuisti
Voit käyttää useita opcode-välimuisteja, mukaan lukien APC, eAccelerator ja Xcache, joista viimeinen on henkilökohtainen mieltymykseni vakauden takia.
Lataa xcache ja pura se hakemistoon ja suorita sitten seuraavat komennot xcache-lähdekoodihakemistosta:
phpize ./configure --enable-xcache tehdä tee asennus
Avaa php.ini-tiedostosi ja lisää uusi osio xcache-tiedostoa varten. Sinun täytyy säätää polkuja, jos php-moduulisi ladataan muualta.
vi /etc/php.ini
Lisää seuraava osa tiedostoon:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "käyttäjänimi" xcache.admin.pass = "putanmd5hashhere" [xcache] ; Muuta xcache.size virittääksesi opcode-välimuistin koon xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8 kt xcache.ttl = 0 xcache.gc_interval = 0 ; Muuta xcache.var_size säätääksesi muuttuvan välimuistin kokoa xcache.var_size = 1M xcache.var_count = 1 xcache.var_slots = 8 kt xcache.var_ttl = 0 xcache.var_maxttl = 0 xcache.var_gc_interval = 300 xcache.test = Ei käytössä xcache.readonly_protection = Päällä xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Käytössä xcache.stat = päällä xcache.optimizer = Ei käytössä
Todo: Tätä on laajennettava hieman ja linkitettävä viitteissä olevaan xcache-tiedostoon.
Varmuuskopiot
Tärkeää on vain vähän kuin automaattisten varmuuskopioiden tekeminen verkkosivustostasi. Saatat pystyä saamaan tilannevedoksen varmuuskopioita palveluntarjoajalta, jotka ovat myös erittäin hyödyllisiä, mutta mieluummin myös automaattiset varmuuskopiot.
Luo automaattinen varmuuskopiointiohjelma
Aloitan yleensä luomalla / backups-hakemiston, jonka alla on / backups / files-hakemisto. Voit säätää näitä polkuja, jos haluat.
mkdir -p / varmuuskopiot / tiedostot
Luo nyt backup.sh-komentosarja varmuuskopiot-hakemistoon:
vi /backups/backup.sh
Lisää seuraava tiedosto, säätämällä polkuja ja mysqldump-salasanaa tarpeen mukaan:
#! / bin / sh
THEDATE = "päivämäärä +% d% m% y% H% M"
mysqldump -uadmin -pSALASANAN DATABASENAME> /backups/files/dbbackup$THEDATE.bak
tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / minun verkkosivustoni-polku / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar
etsi / varmuuskopiot / tiedostot / sivusto * -mtime +5 -exec rm {} \;
etsi / varmuuskopiot / tiedostot / db * -mtime +5 -exec rm {} \;
Komentosarja luo ensin päivämäärämuuttujan, joten kaikki tiedostot nimetään samalla nimellä yhdelle varmuuskopiolle, sitten kaataa tietokanta, tervaa web-tiedostot ja gzips ne. Etsi-komentoja käytetään kaikkien yli 5 päivää vanhempien tiedostojen poistamiseen, koska et halua, että asemasi loppuu.
Tee komentosarja suoritettavaksi suorittamalla seuraava komento:
chmod u + x /backups/backup.sh
Seuraavaksi sinun on määritettävä se suorittamaan cron automaattisesti. Varmista, että käytät tiliä, jolla on pääsy varmuuskopiohakemistoon.
crontab -e
Lisää seuraava rivi hakusanaan:
1 1 * * * /backups/backup.sh
Voit testata komentosarjaa etukäteen suorittamalla sen kirjautuneena käyttäjätilille. (Suoritan yleensä varmuuskopiot juurina)
Synkronoi varmuuskopiot verkon ulkopuolella Rsyncin kanssa
Nyt kun palvelimesi automaattiset varmuuskopiot ovat käynnissä, voit synkronoida ne muualle käyttämällä rsync-apuohjelmaa. Sinun kannattaa lukea tämä artikkeli ssh-avainten määrittämisestä automaattista kirjautumista varten: 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 kotona linux-palvelin, missä suoritan tämän)
rsync -a [email protected]: / varmuuskopiot / tiedostot / * / offsitebackups /
Ensimmäisen kerran suorittaminen kestää jonkin aikaa, mutta lopulta paikallisella tietokoneellasi pitäisi olla kopio tiedostohakemistosta hakemistossa / offsitebackups /. (Varmista, että luot kyseisen hakemiston ennen komentosarjan suorittamista.)
Voit ajoittaa tämän lisäämällä sen crontab-riville:
crontab -e
Lisää seuraava rivi, joka suorittaa rsync: n joka tunti 45 minuutin kohdalla. Huomaat, että käytämme täyttä polkua synkronointiin täällä.
45 * * * * / usr / bin / rsync -a [email protected]: / varmuuskopiot / tiedostot / * / offsitebackups /
Voit ajoittaa sen toimimaan eri aikaan tai vain kerran päivässä. Se on todella sinun tehtäväsi.
Huomaa, että on olemassa monia apuohjelmia, joiden avulla voit synkronoida ssh: n tai ftp: n kautta. Sinun ei tarvitse käyttää rsync-tiedostoa.
Turvallisuus
Ensimmäinen asia, jonka haluat tehdä, on varmistaa, että sinulla on säännöllinen käyttäjätili, jota haluat käyttää ssh: n kautta, ja varmista, että voit vaihtaa juuriksi su: lla. On erittäin huono idea sallia suora kirjautuminen ssh: n kautta.
Poista pääkäyttäjän kirjautuminen SSH: n kautta
Muokkaa / etc / ssh / sshd_config-tiedostoa ja etsi seuraava rivi:
#PermitRootLogin kyllä
Vaihda tämä rivi näyttämään tältä:
PermitRootLogin nro
Varmista ennen tämän muutoksen tekemistä, että sinulla on säännöllinen käyttäjätili ja että voit juoda juuret, muuten saatat lukita itsesi.
Poista SSH-versio 1 käytöstä
Ei ole mitään syytä käyttää muuta kuin SSH-versiota 2, koska se on turvallisempi kuin aiemmat versiot. Muokkaa / etc / ssh / sshd_config-tiedostoa ja etsi seuraava osio:
#Protokolla 2,1 Pöytäkirja 2
Varmista, että käytät vain protokollaa 2 kuvan osoittamalla tavalla.
Käynnistä SSH-palvelin uudelleen
Nyt sinun on käynnistettävä SSH-palvelin uudelleen, jotta tämä tulee voimaan.
/etc/init.d/sshd käynnistä uudelleen
Tarkista avoimet portit
Voit käyttää seuraavaa komentoa nähdäksesi, mitä portteja palvelin kuuntelee:
netstat -an | grep KUUNTELE
Sinulla ei todellakaan pitäisi olla muuta kuuntelua kuin portit 22, 80 ja mahdollisesti 8443 pleskille.
Määritä palomuuri
Voit halutessasi määrittää iptables-palomuurin estämään lisää yhteyksiä. Esimerkiksi estän pääsyn muihin portteihin kuin työverkostoni. Jos sinulla on dynaaminen IP-osoite, sinun on vältettävä tätä vaihtoehtoa.
Jos olet jo noudattanut kaikkia tämän oppaan vaiheita tähän mennessä, palomuuria ei todennäköisesti tarvitse lisätä sekoitukseen, mutta on hyvä ymmärtää vaihtoehtosi.
Katso myös
- Iptablesin käyttö Linuxissa