12Sep

Dedicated Virtual Web Serverin säätäminen

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ään

chmod-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-spamassassin

Poista 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/ xinetd

Limit 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.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 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 stop

Voit estää sen käynnistyksen käynnistyksessä suorittamalla seuraavan komennon:

chmod 644 /etc/init.d/ psa

Huomaa, 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 = 8M

Voitlisää 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 3306

Voit poistaa käytöstä /etc/: n my.cnf-tiedoston seuraavasti:

ohitusverkko

Apache-kokoonpano

Avaa httpd.conf-tiedosto, joka usein löytyy /etc/httpd/conf/: stä httpd.conf

Etsi seuraava rivi:

Timeout 120

Ja muuta se tähän:

Aikakatkaisu 20

Löydä 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 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 asenna

Avaa php.ini-tiedosto jalisää uusi jakso xcachelle. 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 = "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 = Pois

Todo: 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/ tiedostoja

Nyt luodaan backup.sh käsikirjoituksen sisällä varmuuskopiot hakemistoon:

vi /backups/ backup.sh

Lisä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 -e

Lisää seuraava rivi crontab:

1 1 * * * /backups/ backup.sh

Voit 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 -e

Lisää 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 ja

Muuta tätä riviä näin:

PermitRootLogin ei

Varmista, 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 2

Varmista, 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äynnistys

Tarkista avoimet portit

Voit tarkastella seuraavia komentoja, mitä portteja palvelin kuuntelee:

netstat -an |grep LISTEN

Sinun 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