If-Koubou

Ugađanje namjenskih virtualnih web poslužitelja

Ugađanje namjenskih virtualnih web poslužitelja (Kako da)

Kada dobijete posvećeni virtualni poslužitelj za pokretanje svoje web stranice, šanse su dobre da je konfiguriran za sve, a ne prilagođene kako bi se povećala izvedba za pokretanje web stranice.

Sadržaj

[sakriti]

  • 1 Pregled
  • 2 Linux konfiguracija
    • 2.1 Onemogući DNS
    • 2.2 Onemogućite SpamAssassain
    • 2.3 Onemogućiti xinetd
    • 2.4 Ograničenje upotrebe memorije Plesk
    • 2.5 Onemogući ili isključiti Plesk (opcija)
  • 3 MySQL konfiguracija
    • 3.1 Omogućivanje predmemorije upita
    • 3.2 Onemogućite TCP / IP
  • 4 Konfiguracija Apachea
  • 5 PHP konfiguracija
    • 5.1 Uklanjanje nepotrebnih PHP modula
    • 5.2 PHP Cache Opcode
  • 6 sigurnosnih kopija
    • 6.1 Stvaranje automatskog skripte za izradu sigurnosnih kopija
    • 6.2 Sinkroniziranje sigurnosnih kopija off-site s Rsync
  • 7 Sigurnost
    • 7.1 Onemogućiti korijensku prijavu preko SSH
    • 7.2. Onemogućite verziju SSH verzije 1
    • 7.3 Ponovno pokretanje SSH poslužitelja
    • 7.4 Provjerite otvorene ulaze
    • 7.5 Postavljanje vatrozida
  • 8 Vidi također
  • 9 Reference

Pregled

Postoji niz problema s kojima želimo maksimizirati izvedbu:

  • Linux konfiguracija
    Obično se izvode usluge koje ne trebaju biti, gubitak memorije koja bi se mogla koristiti za više veza.
  • MySQL konfiguracija
    Često se zadane postavke temelje na malom poslužitelju, možemo dodati nekoliko ključnih izmjena koje uvelike povećavaju učinkovitost.
  • Apache konfiguracija
    Prema zadanim postavkama većina pružatelja hostinga instalira apache sa gotovo svakim modulom koji je instaliran. Nema razloga za učitavanje modula ako ih nikada nećete koristiti.
  • PHP konfiguraciju
    Zadana konfiguracija PHP-a slično je napuhana, obično je instalirano više tona nepotrebnih dodatnih modula.
  • PHP Cache Opcode
    Umjesto da PHP dozvoli da svaki put recompliraju skripte, predmemorija opkoka će spremiti skripte u memoriji za ogromne performanse.
  • Sigurnosne kopije
    Trebao bi vjerojatno postaviti automatizirane sigurnosne kopije jer vaš davatelj usluge hostinga neće to učiniti za vas.
  • sigurnosti
    Naravno, Linux je dovoljno siguran prema zadanim postavkama, ali obično postoje neki ozbiljni sigurnosni problemi koje možete popraviti s nekoliko brzih postavki.

Linux konfiguracija

Postoji dosta podešavanja koje možete učiniti, što će neznatno varirati ovisno o poslužitelju koji koristite. Ovi ugađaji služe za poslužitelj koji koristi CentOS, ali bi trebali raditi za većinu DV poslužitelja.

Onemogući DNS

Ako vaš davatelj usluge hostinga upravlja DNS-om za vašu domenu (vjerojatno), tada možete onemogućiti pokretanje DNS servisa.

onemogućiti dns /etc/init.d/named stop chmod 644 /etc/init.d/named

Naredba chmod uklanja dozvolu za izvršavanje iz skripte, čime se sprječava pokretanje pri pokretanju.

Onemogućite SpamAssassain

Ako ne upotrebljavate račune e-pošte na samom poslužitelju, ne biste trebali trpjeti alate za sprječavanje neželjene pošte. (Također biste trebali provjeriti Google Apps, mnogo bolje e-rješenje)

/etc/init.d/psa-spamassassin zaustavljanje chmod 644 /etc/init.d/psa-spamassassin

Onemogućite xinetd

Postupak xinetd sadrži niz drugih procesa, od kojih niti jedan nije koristan za tipičan web poslužitelj.

/etc/init.d/xinetd zaustaviti chmod 644 /etc/init.d/xinetd

Ograničite korištenje Plesk memorije

Ako koristite plesk ploču, možete ga prisiliti na manje memorije dodavanjem datoteke opcija.

vi /usr/local/psa/admin/conf/httpsd.custom.include

Datoteku dodajte sljedeće retke:

MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5

Imajte na umu da se ova opcija zna da radi na MediaTemple DV poslužiteljima, ali nije provjerena ni na jednoj drugoj. (Vidi reference)

Onemogući ili isključiti Plesk (nije obavezno)

Ako iskoristite samo Plesk jednom godišnje, postoji vrlo malo razloga da ga ostavite da radi uopće. Napominjemo da je ovaj korak potpuno opcionalan i malo napredniji.

Pokrenite sljedeću naredbu da isključite plesk:

/etc/init.d/psa zaustaviti

Možete onemogućiti njegovo pokretanje pri pokretanju pokretanjem sljedeće naredbe:

chmod 644 /etc/init.d/psa

Imajte na umu da ako ga onemogućite, ne možete ga ručno pokrenuti bez promjene dozvola za datoteke natrag (chmod u + x).

MySQL konfiguracija

Omogući Cache upita

Otvorite /etc/my.cnf datoteku i dodajte sljedeće retke u [mysqld] odjeljak kao što je ovaj:

[mysqld] query-cache-type = 1 upit-predmemorija-veličina = 8M

Ako želite, dodajte više memorije u predmemoriju upita, ali ne previše.

Onemogućite TCP / IP

Iznenađujući broj domaćinstva omogućava pristup MySQL-u na TCP / IP po defaultu, što nema smisla za web stranicu. Možete shvatiti hoće li mysql slušati TCP / IP pokretanjem sljedeće naredbe:

netstat -an | grep 3306

Da biste onemogućili, dodajte sljedeći redak u datoteku /etc/my.cnf:

preskočiti-umrežavanje

Apache konfiguracija

Otvorite svoju httpd.conf datoteku, koja se često nalazi u /etc/httpd/conf/httpd.conf

Pronađite redak koji izgleda ovako:

Timeout 120

I promijenite ga na ovo:

Timeout 20

Sada pronađite odjeljak koji sadrži te retke i prilagodite se slično:

StartServeri 2 MinSpareServeri 2 MaxSpareServeri 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000

PHP konfiguracija

Jedna od stvari koje treba imati na umu prilikom ugađanja poslužitelja na PHP platformi je da svaka pojedinačna apache nit će učitati PHP na zasebnom mjestu u memoriji. To znači da ako neiskorišteni modul doda 256 k memorije u PHP, preko 40 apache niti troši 10 MB memorije.

Uklanjanje nepotrebnih PHP modula

Morat ćete pronaći datoteku php.ini koja se obično nalazi na /etc/php.ini (Imajte na umu da će se na nekim distribucijama pojaviti /etc/php.d/ direktorij s brojem .ini datoteka, jedan za svaki modul.

Komentirajte sve linije loadmodule s ovim modulima:

  • ODBC
  • SNMP
  • PDO
  • odbc pdo
  • mysqli
  • ionCube-utovarivač
  • JSON
  • IMAP
  • lDAP
  • ncursesa

Todo: Dodajte više informacija ovdje.

PHP Cache Opcode

Postoje brojne opkobne spremiće koje možete koristiti, uključujući APC, eAccelerator i Xcache, a posljednja je moja osobna sklonost zbog stabilnosti.

Preuzmite xcache i izvadite ga u direktorij, a zatim pokrenite sljedeće naredbe iz direktorij izvora xcache:

phpize ./configure --enable-xcache napraviti make install

Otvorite datoteku php.ini i dodajte novi odjeljak za xcache. Morat ćete prilagoditi putove ako su vaši php moduli učitani negdje drugdje.

vi /etc/php.ini

Dodajte sljedeći odjeljak u datoteku:

[xcache-common] zend_extension = / usr / lib / php / moduli / xcache.so [xcache.admin] xcache.admin.user = "moje korisničko ime" xcache.admin.pass = "putanmd5hashhere" [xcache]; Promijeni xcache.size za podešavanje veličine cache opcode xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Promijeni xcache.var_size za podešavanje veličine promjenjive predmemorije 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 = Isključeno xcache.readonly_protection = Na xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Na xcache.stat = Na xcache.optimizer = Isključeno

Todo: Trebate ovo malo proširiti i povezati se s xcache u referencama.

Sigurnosne kopije

Postoji vrlo malo važnije od automatiziranih sigurnosnih kopija vaše web stranice. Vi svibanj biti u mogućnosti da biste dobili snimku snapshot od vašeg hosting providera, koji su također vrlo korisne, ali volim imati automatizirane sigurnosne kopije kao dobro.

Stvorite automatsku skripta za izradu sigurnosnih kopija

Ja obično počinjem stvaranjem / backups direktorija, s / backups / files direktorija ispod njega. Možete ih prilagoditi ako želite.

mkdir -p / sigurnosne kopije / datoteke

Sada izradite backup.sh skriptu u direktoriju sigurnosnih kopija:

vi /backups/backup.sh

Dodajte sljedeću datoteku, prilagodite putove i lozinku mysqldump po potrebi:

# / bin / sh THEDATE = "datum +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / files / sitebackup $ THEDATE .tar / var / www / vhosts / moj web-put / httpdocs gzip /backups/files/sitebackup$THEDATE.tar pronađi / sigurnosna kopija / datoteke / web mjesto * -mtime +5 -exec rm  \; pronađi / sigurnosna kopija / datoteke / db * -mtime +5 -exec rm  \;

Skripta će najprije stvoriti varijablu datuma, tako da će sve datoteke biti imenovane za jednu sigurnosnu kopiju, a zatim odlagali bazu podataka, tars up web datoteke i gzips njima. Naredbe za pronalaženje koriste se za uklanjanje svih datoteka starijih od 5 dana, jer ne želite da vaš pogon nestane iz svega.

Provjerite izvršnu skriptu pokretanjem sljedeće naredbe:

chmod u + x /backups/backup.sh

Zatim ćete je morati dodijeliti automatskom prikazivanju pomoću cron-a. Pazite da koristite račun koji ima pristup direktoriju sigurnosnih kopija.

crontab-e

Dodajte sljedeću liniju u crontab:

1 1 * * * /backups/backup.sh

Možete testirati skriptu ispred vremena tako da ga pokrenete dok ste prijavljeni na korisnički račun. (Obično izvodim sigurnosne kopije kao root)

Sinkroniziranje sigurnosnih kopija izvan sustava s Rsyncom

Sada kada imate automatizirane sigurnosne kopije poslužitelja, možete ih sinkronizirati negdje drugdje pomoću uslužnog programa rsync. Vi ćete želite pročitati ovaj članak o tome kako postaviti ssh tipke za automatsku prijavu: Dodajte javni SSH ključ na daljinski poslužitelj u jednoj naredbi

To možete testirati tako da pokrenete ovu naredbu na Linux ili Mac računalu na drugom mjestu (imam Linux poslužitelj kod kuće, gdje sam pokrenuo ovo)

rsync -a [email protected]: / backups / files / * / offsitebackups /

To će potrajati prilično malo vremena da se pokrene prvi put, ali na kraju vašem lokalnom računalu treba imati kopiju direktorija datoteka u / offsitebackups / direktoriju. (Obavezno stvorite taj direktorij prije pokretanja skripte)

To možete zakazati tako da ga dodate u crontab liniju:

crontab-e

Dodajte sljedeću liniju koja će izvršiti rsync svaki sat u 45 minuta. Primijetit ćete da ovdje koristimo cijeli put do rsync.

45 * * * * / usr / bin / rsync -a [email protected]: / sigurnosna kopija / datoteke / * / offsitebackups /

Možete ga zakazati za rad u drugo vrijeme ili samo jednom dnevno. To je do tebe.

Imajte na umu da postoji mnogo uslužnih programa koji će vam omogućiti sinkronizaciju putem ssh ili ftp. Ne morate koristiti rsync.

sigurnosti

Prvo što želite učiniti je pobrinite se da imate redoviti korisnički račun za korištenje putem ssh-a i provjerite možete li koristiti su da biste se prebacili na root. To je vrlo loša ideja za dopuštanje izravne prijave za korijenje preko ssh-a.

Onemogući korijensku prijavu preko SSH-a

Uredite datoteku / etc / ssh / sshd_config i potražite sljedeću liniju:

#PermitRootLogin da

Promijenite tu retku da izgleda ovako:

PermitRootLogin br

Pobrinite se da imate redoviti korisnički račun i možete se suziti prije nego izvršite tu promjenu, inače se možete zaključati.

Onemogućite verziju SSH verzije 1

Stvarno nema razloga koristiti ništa drugo osim SSH verzije 2, jer je sigurnije od prethodnih verzija. Uredite datoteku / etc / ssh / sshd_config i potražite sljedeći odjeljak:

# Protokol 2,1 Protokol 2

Pazite da koristite samo Protokol 2 kao što je prikazano.

Ponovno pokrenite SSH poslužitelj

Sada ćete morati ponovo pokrenuti SSH poslužitelj kako bi ovo postalo učinkovito.

/etc/init.d/sshd restart

Provjerite otvorene priključke

Možete koristiti sljedeću naredbu da biste vidjeli na kojim se portovima sluša slušalica:

netstat -an | grep SLUŠAJTE

Stvarno ne biste trebali ništa slušati osim luka 22, 80 i možda 8443 za plesk.

Postavite vatrozid

Glavni članak:Koristeći iptables na Linuxu

Možete po želji postaviti vatrozid iptables da biste blokirali više veza. Na primjer, obično blokirajem pristup svim drugim lukama, a ne mojoj radnoj mreži. Ako imate dinamičku IP adresu, želite izbjeći tu opciju.

Ako ste već dosad pratili sve korake u ovom vodiču, vjerojatno nije potrebno dodati vatrozid za miks, no dobro je razumjeti opcije.

Vidi također

  • Koristeći iptables na Linuxu

Reference

  • Optimiziranje vašeg DV poslužitelja (mediatemple.net)
  • XCache