12Sep
Kun saat oman virtuaalisen palvelimen verkkosivustosi ylläpitämiseksi, mahdollisuudet ovat hyviä, että se on määritetty kaikille, eikä se ole räätälöity maksimoimaan suorituskyvyn verkkosivuston suorittamiseen.
- 1 Yleiskatsaus
- 2 Linux-kokoonpano
- 2.1 Disable DNS
- 2.2 Disable SpamAssassain
- 2.3 Disable xinetd
- 2.4 Limit Plesk -muistin käyttö
- 2.5 Pleskin poiskytkentä tai poistaminen käytöstä( valinnainen)
- 3 MySQL-kokoonpano
- 3.1 Ota kyselykätkö käyttöön
- 3.2 Disable TCP / IP
- 4 Apache-kokoonpano
- 5 PHP-määritys
- 5.1 Poista tarpeettomat PHP-moduulit
- 5.2 PHP Opcode-välimuisti
- 6 Varmuuskopiot
- 6.1 Automaattisen varmuuskopio-komentosarjan luonti
- 6.2 Synkronointivarmot Off-Site Rsync
- 7 Turvallisuus
- 7.1 Poista RootSisäänkirjautuminen yli SSH
- 7.2 SSH-version 1 poistaminen käytöstä
- 7.3 SSH-palvelimen
- käynnistäminen uudelleen 7.4 Tarkista avoimet portit
- 7.5 Palomuurin asennus
- 8 Katso myös
- 9 Referenssit
Yleiskatsaus
On olemassa useita ongelmia,t suorituskyvyn maksimoimiseksi:
- Linux-määritys
On yleensä käytössä olevia palveluita, joita ei tarvitse olla, tuhlaa muistia, jota voitaisiin käyttää useampiin yhteyksiin. - MySQL-määritys
Usein oletusasetukset perustuvat pieneen palvelimeen, joten voimme lisätä muutamia keskeisiä muutoksia suorituskyvyn parantamiseksi paljon. - Apache-kokoonpano
Oletuksena useimmat hosting-palveluntarjoajat asentavat apache-sovelluksen lähes kaikissa moduuleissa. Ei ole syytä ladata moduuleja, jos et koskaan käytä niitä. - PHP-määritys
Oletusarvoinen PHP-kokoonpano on samalla tavalla paisunut, yleensä on olemassa tarpeettomia ylimääräisiä moduuleja. - PHP Opcode Cache
Sen sijaan, että PHP loisi komentosarjat uudelleen joka kerta, opcode-välimuisti välittää valmiiksi pakatut skriptit muistiin suurien tehostamistoimien vuoksi. - Varmuuskopiot
Olisi todennäköisesti asetettava joitain automaattisia varmuuskopioita, koska palveluntarjoaja ei aio tehdä sitä sinulle. - Security
Toki Linux on riittävän turvallinen oletuksena, mutta yleensä on joitain hämmästyttäviä tietoturvaongelmia, jotka voit korjata muutamalla nopealla asetuksella.
Linuxin konfigurointi
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 käytöstä DNS
Jos palveluntarjoaja käsittelee DNS-verkkotunnuksesi( todennäköistä), voit poistaa DNS-palvelun käytöstä.
estää dns /etc/init.d/ nimeltään stop chmod 644 /etc/init.d/ nimeltäänchmod-komento poistaa suorittavan luvan komentosarjasta pysäyttämällä sen käynnistyksen käynnistyksen yhteydessä.
Poista käytöstä SpamAssassain
Jos et käytä sähköpostitilejä palvelimellasi, sinun ei pidä häiritä roskapostisuhteiden käyttämistä.(Lisäksi kannattaa tarkistaa Google Apps, paljon parempi sähköpostirajoitus)
/etc/init.d/ psa-roskapostin lopettaa chmod 644 /etc/init.d/ psa-spamassassinPoista käytöstä xinetd
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/ xinetdLimit Plesk-muistin käyttö
Jos käytät plesk-paneelia, voit pakottaa sen käyttämään vähemmän muistia lisäämällä lisävarusteen tiedosto.
vi /usr/local/psa/admin/conf/ httpsd.custom.includeLisää tiedostoon seuraavat rivit:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5Huomaa, että tämän vaihtoehdon tiedetään toimivan MediaTemple DV -palvelimilla, mutta sitä ei ole tarkistettu muissa.(Katso viitteet)
Plesk-toiminnon poiskytkeminen tai poistaminen käytöstä( valinnainen)
Jos käytät Pleskiä vain kerran vuodessa, on hyvin vähän syytä jättää se käynnissä ollenkaan. Huomaa, että tämä vaihe on täysin valinnainen ja hieman kehittyneempi.
Käynnistä seuraava komento poistaaksesi plesk:
/etc/init.d/ psa stopVoit estää sen käynnistyksen käynnistyksessä suorittamalla seuraavan komennon:
chmod 644 /etc/init.d/ psaHuomaa, että jos poistat sen, et voi käynnistää sitä manuaalisesti ilmantiedostojen käyttöoikeuksien muuttaminen takaisin( chmod u + x).
MySQL-määritykset
Ota kyselykeskustelu käyttöön
Avaa /etc/ my.cnf -tiedosto ja lisää seuraavat rivejä [mysqld] -osiossa:
[mysqld] query-cache-type = 1 kysely-välimuisti-koko = 8MVoitlisää muistia kyselyvälimuistiin, jos haluat, mutta älä käytä liikaa.
TCP / IP: n estäminen
Yllättävä määrä isäntäkoneita 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 3306Voit poistaa käytöstä /etc/: n my.cnf-tiedoston seuraavasti:
ohitusverkkoApache-kokoonpano
Avaa httpd.conf-tiedosto, joka usein löytyy /etc/httpd/conf/: stä httpd.conf
Etsi seuraava rivi:
Timeout 120Ja muuta se tähän:
Aikakatkaisu 20Löydä osio, joka sisältää nämä rivit ja säädä jotain vastaavaa:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000PHP-määritys
Yksi asioistapitää muistaa, kun palvelimen muokkaamista PHP-alustalla on, että jokainen apache-laji aikoo ladata PHP: n erilliseen sijaintiin muistissa. 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 täytyy löytää php.ini-tiedosto, joka yleensä löytyy /etc/ php.ini-tiedostosta( Huomaa, että joissakin jakeluissa on /etc/php.d/-hakemisto, jossa on useita. ini-tiedostoja, yksiJokainen moduuli
kommentoi kaikkia moduuleja seuraavilla moduuleilla:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-loader
- json
- imap
- ldap
- ncurses
Todo: Lisää tietoja tästä
PHP Opcode Cache
on useita opcode-välimuistia, joita voit käyttää, kuten APC, eAccelerator ja Xcache, joista viimeinen on minun henkilökohtainen mieltymys vakauden vuoksi.
Lataa xcache ja poimi se hakemistoon ja suorita sitten seuraavat komennot xcache-lähteestähakemisto:
phpize. /configure --enable-xcache tee asennaAvaa php.ini-tiedosto jalisää uusi jakso xcachelle. Sinun on säädettävä polkuja, jos php-moduulisi on ladattu muualta.
vi /etc/ php.iniLisää tiedostoon seuraava osa:
[xcache-common] zend_extension = /usr/lib/php/modules/ xcache.so [xcache.admin] xcache.admin.user = "käyttäjätunnus" xcache.admin.pass = "putanmd5hashhere"[xcache];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 koko 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 = Pois xcache.readonly_protection =On xcache.mmap_path = "/tmp/ xcache" xcache.coredump_directory = "" xcache.cacher = On xcache.stat = On xcache.optimizer = PoisTodo: Tarvitse laajentaa tätä hieman ja linkkiä xcacheen viitteissä.
Varmuuskopiot
Sinulla on hyvin vähän tärkeämpää kuin verkkosivustosi automaattiset varmuuskopiot. Saatat joutua ottamaan tilannevedoksen varmuuskopioita palveluntarjoajaltasi, joka on myös erittäin hyödyllinen, mutta haluan myös automatisoidut varmuuskopiot.
Luo automaattinen varmuuskopio-komentosarja
Aloitan yleensä luomalla / varmuuskopiointihakemiston, jonka alapuolella on /backups/-tiedostojen hakemisto. Voit säätää näitä polkuja, jos haluat.
mkdir -p /backups/ tiedostojaNyt luodaan backup.sh käsikirjoituksen sisällä varmuuskopiot hakemistoon:
vi /backups/ backup.shLisätään tiedostoon, säätämällä polut ja mysqldump salasana tarvittaessa:
#!/bin/ sh THEDATE = `päivämäärä +% d% m% y% H% M` mysqldump -uadmin -pPASSWORD DATABASENAME & gt;/backups/files/ dbbackup $ THEDATE.bak terva -cf /backups/files/ sitebackup $ THEDATE.tar /var/www/vhosts/ minun-sivusto-polku / httpdocs gzip /backups/files/ sitebackup $ THEDATE.tar löytää /backups/files/ sivusto * -mtime +5 exec rm{ } \;etsi /backups/files/ db * -mtime +5 -exec rm{ } \;Käsikirjoitus luo ensin päivämäärän, joten kaikki tiedostot nimetään samalle varmuuskopiolle, sitten kaatavat tietokannat, tallentavat verkkotiedostot ja gzipit. Etsikomentoja käytetään poistamaan kaikki yli 5 päivää vanhat tiedostot, koska et halua, että asema loppuu.
Tee komentotiedosto suoritettavaksi suorittamalla seuraava komento:
chmod u + x /backups/ varmuuskopio.Seuraavaksi sinun on annettava sille automaattinen suorittaminen cron: lla. Varmista, että käytät tiliä, jolla on pääsy varmuuskopiointihakemistoon.
crontab -eLisää seuraava rivi crontab:
1 1 * * * /backups/ backup.shVoit testata käsikirjoituksen etukäteen ajamalla sitä samalla kirjautuneena käyttäjätilille.(En yleensä ajaa varmuuskopiot root)
Sync Varmuuskopiot kauko- rsync
Nyt sinulla on automatisoitu varmuuskopioita palvelin käynnissä, voit synkronoida ne jonnekin muualle käyttämällä rsync-apuohjelman. 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ätä suorittamalla tämän komennon linux- tai Mac-koneella toisessa paikassa( Ion Linux-palvelin kotona, mikä on kun olen suorittanut tämän)
rsync -a [email protected]: /backups/files/ * /offsitebackups/Tämä kestää melko kauan ajaa ensimmäistä kertaa, mutta lopussa paikallisen tietokoneen pitäisi olla kopiotiedosto-hakemistosta /offsitebackups/-hakemistossa.(Muista luoda että hakemistoon ennen käynnissä script)
Voit ajoittaa tämän lisäämällä sen crontabista rivi:
crontab -eLisää seuraava rivi, joka jatkuu rsync tunnin välein klo 45 minuutin kohdalla. 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ä.
Security
Haluat ensinnäkin 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än kirjautuminen SSH
: n avulla Muokkaa /etc/ssh/ sshd_config -tiedostoa ja etsi seuraava rivi:
#PermitRootLogin jaMuuta tätä riviä näin:
PermitRootLogin eiVarmista, että sinulla on säännöllinen käyttäjätili jaroot ennen kuin teet tämän muutoksen, muuten saatat lukita itsesi ulos.
Poista käytöstä SSH-versio 1
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 seuraavaa osaa:
#Protokolla 2,1 Pöytäkirja 2Varmista, että käytät vain protokollaa 2, kuten kuvassa on.
Käynnistä SSH-palvelin
Nyt sinun on käynnistettävä SSH-palvelin uudelleen, jotta tämä tulee voimaan.
/etc/init.d/ sshd uudelleenkäynnistysTarkista avoimet portit
Voit tarkastella seuraavia komentoja, mitä portteja palvelin kuuntelee:
netstat -an |grep LISTENSinun ei todellakaan pitäisi olla mitään kuunneltavaa muita kuin plesk-portteja 22, 80 ja mahdollisesti 8443.
Asennus palomuuri
Tärkein 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
Referenssit
- DV-palvelimen optimointi( mediatemple.net)
- XCache