Dedikoidun virtuaalisen Web-palvelimen muokkaaminen
Kun saat oman virtuaalipalvelimen sivustosi suorittamiseen, on todennäköistä, että se on määritetty kaikille, eikä sitä ole räätälöity maksimoimaan suorituskykyä verkkosivuston suorittamisessa.
Sisällys[piilottaa]
|
Yleiskatsaus
On monia ongelmia, joilla haluamme maksimoida suorituskyvyn:
- Linux-kokoonpano
Tavallisesti on käytössä palveluita, 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 lisäämiseksi paljon. - Apache-asetukset
Oletusarvoisesti useimmat isännöintipalveluntarjoajat asentavat apache-ohjelman lähes jokaisen asennetun moduulin avulla. Moduulia ei tarvitse ladata, jos et koskaan käytä niitä. - PHP-määritys
Oletusarvoisesti PHP: n kokoonpano on samoin paisunut, yleensä on asennettu tonni tarpeettomia ylimääräisiä moduuleja. - PHP Opcode-välimuisti
Sen sijaan, että PHP voisi kääntää komentosarjoja uudelleen joka kerta, opcode-välimuisti tallentaa muistiin tallennetut komentosarjat valtavan suorituskyvyn parantamiseksi. - varmuuskopiot
Olisi luultavasti asennettava joitakin automaattisia varmuuskopioita, koska palveluntarjoajasi ei aio tehdä sitä puolestasi. - turvallisuus
Toki Linux on riittävän turvallinen oletusarvoisesti, mutta yleensä on joitakin häikäiseviä turvallisuusongelmia, joita voit korjata muutamalla nopealla asetuksella.
Linux-kokoonpano
Voit tehdä melkoisesti useita tweaks-ohjelmia, jotka vaihtelevat hieman käytetyn palvelimen mukaan. Nämä tweakit ovat palvelimelle, joka käyttää CentOSia, mutta niiden pitäisi toimia useimmissa DV-palvelimissa.
Poista DNS käytöstä
Jos palveluntarjoajasi käsittelee verkkotunnuksesi DNS: ää (todennäköisesti), voit poistaa DNS-palvelun käytöstä.
poista dns /etc/init.d/named stop chmod 644 käytöstä /etc/init.d/named
Chmod-komento poistaa suoritettavan luvan skriptistä, jolloin se pysähtyy käynnistyksen yhteydessä.
Poista SpamAssassain käytöstä
Jos et käytä sähköpostitilejä itse palvelimellasi, sinun ei pitäisi häiritä roskapostin vastaisia työkaluja. (Tarkista myös Google-sovellukset, paljon parempi sähköpostiratkaisu)
/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ä asetustiedoston.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Lisää seuraavat rivit tiedostoon:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Huomaa, että tämän vaihtoehdon tiedetään toimivan MediaTemple DV -palvelimissa, mutta sitä ei ole tarkistettu muilla. (Katso viitteet)
Poista tai poista Plesk käytöstä (valinnainen)
Jos käytät Pleskiä vain kerran vuodessa, on hyvin vähän syytä jättää se käyttämättä. Huomaa, että tämä vaihe on täysin valinnainen ja hieman kehittyneempi.
Voit poistaa pleskin käytöstä seuraavasti:
/etc/init.d/psa stop
Voit poistaa sen käytöstä käynnistyksessä 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 oikeuksia takaisin (chmod u + x).
MySQL-määritykset
Ota kyselyn välimuisti käyttöön
Avaa /etc/my.cnf-tiedosto ja lisää seuraavat rivit [mysqld] -osiossa seuraavasti:
[mysqld] query-cache-type = 1 kysely-välimuisti-koko = 8M
Voit lisätä kyselyn välimuistiin lisää muistia, jos et halua, mutta älä käytä liikaa.
Poista TCP / IP käytöstä
Yllättävä määrä isäntiä mahdollistaa pääsyn MySQL: ään TCP / IP: ssä oletusarvoisesti, mikä ei ole järkevää verkkosivustolle. Voit selvittää, kuuntelevatko mysql TCP / IP: llä suorittamalla seuraavan komennon:
netstat -an | grep 3306
Voit poistaa käytöstä seuraavan rivin /etc/my.cnf-tiedostoon seuraavasti:
skip-verkko
Apache-määritykset
Avaa httpd.conf-tiedosto, joka löytyy usein osoitteesta /etc/httpd/conf/httpd.conf
Etsi rivi, joka näyttää tältä:
Aikakatkaisu 120
Ja muuta se tähän:
Aikakatkaisu 20
Nyt löydät osan, 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, joita pitää pitää mielessä, kun palvelin pyörii PHP-alustalla, on, että jokainen apache-kierre ladaa PHP: n erilliseen muistipaikkaan. Tämä tarkoittaa, että jos käyttämätön moduuli lisää 256 kilotavua PHP: lle, 40 apache-langan yli tuhlaat 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 jakelussa on /etc/php.d/-hakemisto, jossa on useita .ini-tiedostoja, yksi kullekin moduulille.
Kommentoi kaikki nämä moduulit:
- odbc
- SNMP
- SAN
- odbc pdo
- mysqli
- ioncube-loader
- json
- imap
- ldap
- ncurses
Todo: Lisää lisätietoja täältä.
PHP Opcode-välimuisti
Käytettävissä on useita optiokoodeja, kuten APC, eAccelerator ja Xcache, joista viimeinen on henkilökohtainen suosikkini vakauden takia.
Lataa xcache ja poista se hakemistoon ja suorita sitten seuraavat komennot xcache-lähdehakemistosta:
phpize ./configure --enable-xcache tehdä asennuksen
Avaa php.ini-tiedosto ja lisää uusi osa xcache-tiedostoon. Sinun täytyy säätää polkuja, jos php-moduulit 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 = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Muuta xcache.size, kun haluat virittää opcode-välimuistin koon xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Muuta xcache.var_size säätääksesi muuttujan välimuistin kokoa 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 = Ei käytössä xcache.readonly_protection = Käytössä xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Käytössä xcache.stat = Käytössä xcache.optimizer = Ei käytössä
Todo: Tarve laajentaa tätä vähän ja linkitä viittauksiin linkkiin xcache.
varmuuskopiot
On hyvin vähän tärkeämpää kuin automatisoidut varmuuskopiot sivustostasi. Saatat ehkä saada tilannekuvan varmuuskopioita isännöintipalveluntarjoajalta, jotka ovat myös erittäin hyödyllisiä, mutta mieluummin myös automaattisia varmuuskopioita.
Luo automaattinen varmuuskopiointiohjelma
Aloitan yleensä luomalla / varmuuskopiot -hakemiston, jossa on / varmuuskopiot / tiedostot -hakemisto. Voit säätää näitä polkuja, jos haluat.
mkdir -p / varmuuskopiot / tiedostot
Luo varmuuskopiointihakemistoon varmuuskopiointihakemisto:
vi /backups/backup.sh
Lisää seuraavat tiedostot, säädä polkuja ja mysqldump-salasanaa tarpeen mukaan:
#! / bin / sh THEDATE = "päivämäärä +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / varmuuskopiot / tiedostot / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar löytää / varmuuskopiot / tiedostot / sivusto * -mtime +5 -exec rm \ t find / backups / files / db * -mtime +5 -exec rm \ t
Skripti luo ensin päivämäärämuuttujan, joten kaikki tiedostot nimetään samaksi yhden varmuuskopion yhteydessä, sitten tyhjentää tietokannan, tarsaa Web-tiedostot ja heittää ne. Etsi-komentoja käytetään poistamaan kaikki yli 5 päivän ikäiset tiedostot, koska et halua, että asema loppuu.
Tee komentosarja suoritettavaksi suorittamalla seuraava komento:
chmod u + x /backups/backup.sh
Seuraavaksi sinun täytyy määrittää se toimimaan automaattisesti cronin avulla. Varmista, että käytät tiliä, jolla on pääsy varmuuskopioiden hakemistoon.
crontab-e
Lisää seuraava rivi crontabiin:
1 1 * * * / backups/backup.sh
Voit testata komentosarjan etukäteen suorittamalla sen kirjautumalla sisään käyttäjätiliin. (Käytän yleensä varmuuskopioita root-muodossa)
Synkronoi varmuuskopiot pois sivustosta Rsyncin avulla
Nyt kun sinulla on automaattiset varmuuskopiot palvelimestasi, voit synkronoida ne muualle käyttämällä rsync-apuohjelmaa. Sinun kannattaa lukea tämä artikkeli ssh-avainten asentamisesta automaattiseen kirjautumiseen: 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, jossa käytän tätä)
rsync -a [email protected]: / varmuuskopiot / tiedostot / * / offsitebackups /
Tämä kestää melko kauan ensimmäistä kertaa, mutta lopulta paikallisella tietokoneella pitäisi olla kopio tiedostojen hakemistosta / offsitebackups / hakemistossa. (Varmista, että olet luonut kyseisen hakemiston ennen komentosarjan suorittamista)
Voit ajoittaa tämän lisäämällä sen crontab-riville:
crontab-e
Lisää seuraava rivi, joka suorittaa rsyncin joka tunti 45 minuutin merkillä. Huomaat, että käytämme täällä rsync-polkua.
45 * * * * / usr / bin / rsync -a [email protected]: / varmuuskopiot / tiedostot / * / offsitebackups /
Voit ajastaa sen ajaa toiseen aikaan tai vain kerran päivässä. Se on todella sinun tehtäväsi.
Huomaa, että on paljon apuohjelmia, joiden avulla voit synkronoida ssh: n tai ftp: n kautta. Sinun ei tarvitse käyttää rsynciä.
turvallisuus
Ensimmäinen asia, jonka haluat tehdä, on varmistaa, että sinulla on säännöllinen käyttäjätili, jota voit käyttää ssh: n kautta, ja varmista, että voit käyttää su: ta siirtyäksesi rootiin. Se on erittäin huono idea sallia suora kirjautumistunnus yli ssh.
Poista pääkäyttäjän pääsy SSH: n kautta
Muokkaa / etc / ssh / sshd_config-tiedostoa ja etsi seuraava rivi:
#PermitRootLogin kyllä
Vaihda tämä rivi näyttää tältä:
PermitRootLogin no
Varmista, että sinulla on säännöllinen käyttäjätili ja voit juoda juuri ennen muutoksen tekemistä, muuten voit lukita itsesi ulos.
Poista SSH-versio 1 käytöstä
Ei ole mitään syytä käyttää mitään muuta kuin SSH-versiota 2, koska se on aiempaa turvallisempi kuin aiemmat versiot. Muokkaa / etc / ssh / sshd_config-tiedostoa ja etsi seuraava osa:
#Protokolla 2,1 Protokolla 2
Varmista, että käytät vain protokollaa 2 kuvan mukaisesti.
Käynnistä SSH-palvelin uudelleen
Nyt sinun on käynnistettävä SSH-palvelin uudelleen, jotta tämä tulee voimaan.
/etc/init.d/sshd käynnistyy uudelleen
Tarkista avoimet portit
Voit käyttää seuraavaa komentoa nähdäksesi, mitkä portit palvelin kuuntelee:
netstat -an | grep LISTEN
Sinun ei pitäisi olla mitään muuta kuunneltavaa kuin portit 22, 80 ja mahdollisesti 8443.
Aseta palomuuri
Pääartikkeli: Iptablesin käyttö Linuxissa
Voit valinnaisesti määrittää iptables-palomuurin estämään lisää yhteyksiä. Esimerkiksi en yleensä estä pääsyä mihin tahansa muuhun satamaan kuin työverkostani. Jos sinulla on dynaaminen IP-osoite, haluat välttää tämän vaihtoehdon.
Jos olet jo noudattanut kaikkia tämän oppaan vaiheita, ei todennäköisesti ole tarpeen lisätä palomuuria myös yhdistelmään, mutta on hyvä ymmärtää vaihtoehdot.
Katso myös
- Iptablesin käyttö Linuxissa
Viitteet
- DV-palvelimen optimointi (mediatemple.net)
- XCache