Virtuālā virtuālā tīmekļa servera apgriešana
Kad jūs saņemat īpašu virtuālo serveri, lai palaistu jūsu vietni, ir labas iespējas, ka tā ir konfigurēta visiem, un nav pielāgota, lai maksimizētu veiktspēju vietnes darbināšanai.
Saturs[paslēpt]
|
Pārskats
Ir vairākas problemātiskas jomas, kurās mēs vēlamies palielināt veiktspēju:
- Linux konfigurācija
Parasti darbojas pakalpojumi, kuriem nav jābūt, izšķērdēt atmiņu, ko varētu izmantot vairākiem savienojumiem. - MySQL konfigurācija
Bieži vien noklusējuma iestatījumi ir balstīti uz nelielu serveri, mēs varam pievienot dažas galvenās izmaiņas, lai palielinātu veiktspēju. - Apache konfigurācija
Pēc noklusējuma lielākā daļa hostinga pakalpojumu sniedzēju instalē apache ar gandrīz katru instalēto moduli. Nav iemesla ielādēt moduļus, ja jūs nekad tos neizmantosiet. - PHP konfigurācija
Tāpat noklusējuma PHP konfigurācija ir uzpūsta, parasti ir uzstādīti nevajadzīgi papildu moduļi. - PHP Opcode kešatmiņa
Tā vietā, lai ļautu PHP atkārtoti kompilēt skriptus katru reizi, opcode kešatmiņa glabā atmiņā esošos apkopotos skriptus milzīgā veiktspējas palielināšanā. - Dublējumi
Iespējams, ir jāizveido daži automatizēti dublējumi, jo jūsu hostinga pakalpojumu sniedzējs to nedarīs. - Drošība
Protams, pēc noklusējuma Linux ir pietiekami droša, taču parasti ir dažas acīmredzamas drošības problēmas, kuras var novērst ar dažiem ātriem iestatījumiem.
Linux konfigurācija
Ir diezgan daudz tweaks, ko varat izdarīt, kas nedaudz atšķirsies atkarībā no izmantotā servera. Šie tweaks ir paredzēti serverim, kurā darbojas CentOS, bet tiem vajadzētu strādāt lielākajā daļā DV serveru.
Atspējot DNS
Ja jūsu hostinga sniedzējs apstrādā jūsu domēna DNS (iespējams), tad DNS pakalpojumu var atspējot.
atspējot dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Chmod komanda noņem skripta izpildīšanas atļauju, apturot to no palaišanas.
Atspējot SpamAssassain
Ja jūs neizmantojat e-pasta kontus savā serverī, jums nevajadzētu apgrūtināt pret surogātpasta novēršanas rīkus. (Jums vajadzētu arī pārbaudīt Google Apps, daudz labāku e-pasta risinājumu)
/etc/init.d/psa-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Atspējot xinetd
Procesā xinetd ir vairāki citi procesi, no kuriem neviens nav noderīgs tipiskam tīmekļa serverim.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Ierobežot Plesk atmiņas lietošanu
Ja izmantojat plesk paneli, varat piespiest to izmantot mazāk atmiņas, pievienojot opciju failu.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Pievienot failam šādas rindas:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Ņemiet vērā, ka šī opcija darbojas, izmantojot MediaTemple DV serverus, bet nav pārbaudīta nevienā citā. (Skatīt atsauces)
Atspējot vai izslēdziet Plesku (pēc izvēles)
Ja Plesk izmantojat tikai vienu reizi gadā, tad ir ļoti maz iemesla, lai tas vispār paliktu. Ņemiet vērā, ka šis solis ir pilnīgi neobligāts un nedaudz uzlabots.
Veiciet šādu komandu, lai izslēgtu plesk:
/etc/init.d/psa pietura
Varat to atspējot, startējot, palaižot šādu komandu:
chmod 644 /etc/init.d/psa
Ņemiet vērā, ka, ja to atspējojat, jūs nevarat to sākt manuāli, nemainot failu atļaujas (chmod u + x).
MySQL konfigurācija
Iespējot vaicājumu kešatmiņu
Atveriet /etc/my.cnf failu un pievienojiet sekojošās rindas savā [mysqld] sadaļā:
[mysqld] query-cache-type = 1 vaicājums-cache-size = 8M
Ja vēlaties, vaicājuma kešatmiņā varat pievienot vairāk atmiņas, bet nelietojiet pārāk daudz.
Atspējot TCP / IP
Pārsteidzošs saimnieku skaits ļauj nokļūt MySQL uz TCP / IP pēc noklusējuma, kas nav jēgas tīmekļa vietnei. Varat noskaidrot, vai mysql klausās TCP / IP, izpildot šādu komandu:
netstat -an | grep 3306
Lai atspējotu, pievienojiet šādu rindu savam /etc/my.cnf failam:
izlaist tīklu
Apache konfigurācija
Atveriet savu httpd.conf failu, kas bieži atrodams vietnē /etc/httpd/conf/httpd.conf
Atrodiet šādu līniju:
Timeout 120
Un mainiet to uz šo:
Timeout 20
Tagad atrodiet sadaļu, kas ietver šīs līnijas, un pielāgojiet to līdzīgam:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
PHP konfigurācija
Viena no lietām, kas jāpatur prātā, izmainot serveri uz PHP platformas, ir tas, ka katrs apache pavediens ielādēs PHP atsevišķā vietā atmiņā. Tas nozīmē, ja neizmantots modulis PHP pievieno 256k atmiņas, 40 apache diegos izšķērdēt 10 MB atmiņas.
Noņemt nevajadzīgos PHP moduļus
Jums būs jāatrod jūsu php.ini fails, kas parasti atrodams vietnē /etc/php.ini (Ņemiet vērā, ka dažos izplatījumos būs /etc/php.d/ direktorijs ar vairākiem .ini failiem, viens katram modulim.
Komentējiet visas slodzes moduļu līnijas ar šiem moduļiem:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-loader
- Džons
- imap
- ldap
- māsas
Todo: pievienojiet šeit vairāk informācijas.
PHP Opcode kešatmiņa
Ir vairākas opcijas kodu kešatmiņas, kuras var izmantot, ieskaitot APC, eAccelerator un Xcache, pēdējā no tām ir mana personīgā izvēle stabilitātes dēļ.
Lejupielādējiet xcache un iegūstiet to direktorijā un pēc tam palaidiet šādas komandas no xcache avota direktorijas:
phpize ./configure --enable-xcache padara instalēšanu
Atveriet failu php.ini un pievienojiet jaunu sadaļu xcache. Jums būs jāpielāgo ceļi, ja jūsu php moduļi tiek ielādēti no kaut kur citur.
vi /etc/php.ini
Pievienot failam šādu sadaļu:
[xcache-common] zend_extension = /usr/lib/php/modules/xcache.so [xcache.admin] xcache.admin.user = "myusername" xcache.admin.pass = "putanmd5hashhere" [xcache]; Mainiet xcache.size, lai noregulētu opcode cache lielumu xcache.size = 16M xcache.shm_scheme = "mmap" xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Mainīt xcache.var_size, lai pielāgotu mainīgā kešatmiņas lielumu 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 = Izslēgts xcache.readonly_protection = On xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Ieslēgts xcache.stat = Ieslēgts xcache.optimizer = Izslēgts
Todo: Nepieciešams paplašināt šo bitu un atsauces uz xcache.
Dublējumi
Ir ļoti maz svarīgāka nekā jūsu vietnes automatizēto dublējumu veikšana. Iespējams, varēsiet saņemt momentuzņēmuma dublējumus no jūsu hostinga sniedzēja, kas arī ir ļoti noderīgi, bet es arī gribētu, lai būtu arī automatizēti dublējumi.
Izveidot automatizēto rezerves skriptu
Es parasti sāku, izveidojot / backups direktoriju, zem tā ar / backups / files direktoriju. Jūs varat pielāgot šos ceļus, ja vēlaties.
mkdir -p / backups / files
Tagad izveidojiet backup.sh skriptu backups direktorijā:
vi /backups/backup.sh
Pievienojiet failam šādu informāciju, nepieciešamības gadījumā pielāgojot ceļus un mysqldump paroli:
#! / bin / sh THEDATE = "datums +% d% m% y% H% M" mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak tar -cf / backups / files / sitebackup $ THEDATE .tar / var / www / vhosts / my-website-path / httpdocs gzip /backups/files/sitebackup$THEDATE.tar atrast / backups / files / site * -mtime +5 -exec rm \ t atrast / backups / files / db * -mtime +5 -exec rm \ t
Skripts vispirms izveidos datuma mainīgo, lai visi faili tiktu nosaukti vienādi vienam dublējumam, pēc tam izgāzt datubāzi, padara web failus tukšākus un tos gzips. Atrast komandas tiek izmantotas, lai noņemtu visus failus, kas vecāki par 5 dienām, jo jūs nevēlaties, lai jūsu disks palaist no vietas.
Veiciet skriptu izpildāmu, izpildot šādu komandu:
chmod u + x /backups/backup.sh
Tālāk jums būs jāpiešķir, lai tas automātiski darbotos ar cron. Pārliecinieties, vai izmantojat kontu, kuram ir piekļuve rezerves kopiju direktorijai.
crontab-e
Pievienot crontab šādu rindu:
1 1 * * * /backups/backup.sh
Jūs varat pārbaudīt skriptu pirms laika, palaižot to, kad esat pieteicies lietotāja kontā. (Parasti dublējumkopijas izmantoju kā root)
Sinhronizējiet rezerves kopijas ārpus vietnes ar Rsync
Tagad, kad jums ir automatizēti jūsu servera dublējumi, varat tos sinhronizēt kaut kur citur, izmantojot rsync utilītu. Jūs vēlaties izlasīt šo rakstu par to, kā iestatīt ssh taustiņus automātiskai pieteikšanai: pievienojiet publisko SSH atslēgu attālajam serverim vienā komandā
To var pārbaudīt, palaižot šo komandu linux vai Mac datorā citā vietā (man mājās ir linux serveris, kas to dara)
rsync -a [email protected]: / backups / files / * / offsitebackups /
Pirmajā reizē tas aizņems diezgan ilgu laiku, bet beigās jūsu vietējam datoram ir jābūt failu direktorijas kopijai / offsitebackups / direktorijā. (Pirms skripta palaišanas noteikti izveidojiet šo direktoriju)
To varat ieplānot, pievienojot to crontab līnijai:
crontab-e
Pievienojiet šādu rindu, kas katru stundu darbosies rsync ar 45 minūšu atzīmi. Jūs pamanīsiet, ka mēs izmantojam pilnu ceļu uz rsync šeit.
45 * * * * / usr / bin / rsync -a [email protected]: / backups / files / * / offsitebackups /
Jūs varat to ieplānot darboties citā laikā vai tikai vienu reizi dienā. Tas tiešām ir atkarīgs no jums.
Ņemiet vērā, ka ir daudz pakalpojumu, kas ļaus sinhronizēt ar ssh vai ftp. Jums nav jāizmanto rsync.
Drošība
Pirmā lieta, ko vēlaties darīt, ir pārliecināties, ka jums ir regulārs lietotāja konts, ko izmantot, izmantojot ssh, un pārliecinieties, ka varat izmantot su, lai pārslēgtos uz root. Tā ir ļoti slikta ideja, lai atļautu tiešu pieteikšanos saknei virs ssh.
Atspējot saknes pieteikšanos SSH
Rediģējiet failu / etc / ssh / sshd_config un meklējiet šādu rindu:
#PermitRootLogin jā
Mainiet šo līniju, lai izskatītos šādi:
PermitRootLogin nr
Pārliecinieties, ka jums ir regulārs lietotāja konts, un, pirms veicat šīs izmaiņas, varat iesākties, citādi jūs varat bloķēt sevi.
Atspējot SSH 1. versiju
Nav nekāda iemesla izmantot neko citu kā tikai SSH 2. versiju, jo tā ir drošāka nekā iepriekšējās versijas. Rediģējiet failu / etc / ssh / sshd_config un meklējiet šādu sadaļu:
2. protokola 2. protokols
Pārliecinieties, ka izmantojat tikai 2. protokolu, kā parādīts attēlā.
Restartējiet SSH serveri
Tagad jums būs nepieciešams restartēt SSH serveri, lai tas stātos spēkā.
/etc/init.d/sshd restartēt
Pārbaudiet atvērtās ostas
Varat izmantot šādu komandu, lai redzētu, kuri porti serveris klausās:
netstat -an | grep LISTEN
Jums tiešām nevajadzētu būt nekam citam, nevis 22, 80 un, iespējams, 8443 portiem.
Iestatiet ugunsmūri
Galvenais raksts: Izmantojot Iptables Linux
Varat iestatīt iptables ugunsmūri, lai bloķētu vairāk savienojumu. Piemēram, es parasti bloķēju piekļuvi jebkurai citai ostai, izņemot no sava darba tīkla. Ja jums ir dinamiska IP adrese, vēlaties izvairīties no šīs opcijas.
Ja jūs līdz šim esat izpildījis visas šīs rokasgrāmatas darbības, iespējams, ka nav nepieciešams pievienot ugunsmūri maisījumam, bet ir labi saprast jūsu iespējas.
Skatīt arī
- Izmantojot Iptables Linux
Atsauces
- DV servera optimizēšana (mediatemple.net)
- XCache