Kad jūsu vietnei ir pieejams īpašs virtuālais serveris, iespējams, ka tā ir konfigurēta visiem un nav pielāgota, lai maksimāli uzlabotu vietnes darbību.
Saturs[paslēpt]
|
Pastāv vairākas problēmu jomas, kurās mēs vēlamies palielināt veiktspēju:
Jūs varat veikt vairākus tweaks, kas nedaudz mainīsies atkarībā no izmantotā servera. Šie uzlabojumi ir paredzēti serverim, kurā darbojas CentOS, taču tiem vajadzētu strādāt lielākajā daļā DV serveru.
Ja jūsu hostinga pakalpojumu sniedzējs apstrādā jūsu domēnam DNS (iespējams), tad jūs varat atspējot DNS pakalpojuma darbību.
atspējot dns /etc/init.d/name stop chmod 644 /etc/init.d/named
Komandas chmod noņem skripta izpildes atļauju, apstādinot to startējot.
Ja pašā serverī nelietojat e-pasta kontus, jums nevajadzētu apnikt darboties pretpasākumu rīkus. (Arī jums vajadzētu pārbaudīt Google Apps, daudz labāku e-pasta risinājumu)
/etc/init.d/psa-spamassassost stop chmod 644 /etc/init.d/psa-spamassassin
Xinetd procesā ir vairāki citi procesi, no kuriem neviens nav noderīgs tipiskajam tīmekļa serverim.
/etc/init.d/xinetd stop chmod 644 /etc/init.d/xinetd
Ja izmantojat plesk paneli, varat piespiest to izmantot mazāk atmiņas, pievienojot opciju failu.
vi /usr/local/psa/admin/conf/httpsd.custom.include
Pievienojiet failam šādas rindiņas:
MinSpareServers 1 MaxSpareServers 1 StartServers 1 MaxClients 5
Ņemiet vērā, ka šī opcija, domājams, darbojas MediaTemple DV serveros, bet tā nav pārbaudīta nevienā citā. (Skatīt Atsauces)
Ja jūs izmantojat Plesk tikai vienu reizi gadā, ir ļoti maz iemeslu, kāpēc tas paliek nemainīgs. Ņemiet vērā, ka šis solis ir pilnīgi neobligāts un nedaudz progresīvāks.
Lai izslēgtu plesk, izpildiet šo komandu:
/etc/init.d/psa pietura
Varat atspējot tā palaišanu pie startēšanas, palaižot šādu komandu:
chmod 644 /etc/init.d/psa
Ņemiet vērā, ka, ja to atspējosit, to nevarēsit palaist manuāli, nemainot failu atļauju atpakaļ (chmod u + x).
Atveriet savu /etc/my.cnf failu un pievienojiet sekojošām rindiņām jūsu [mysqld] sadaļā, piemēram:
[mysqld] query-cache-type = 1 query-cache-size = 8M
Ja vēlaties, varat pievienot vairāk atmiņas vaicājuma kešam, bet neizmantojiet pārāk daudz.
Pārsteidzošs skaits saimniekdatoru nodrošina noklusējuma piekļuvi MySQL TCP / IP, un tam nav jēgas tīmekļa vietnei. Jūs varat noskaidrot, vai mysql klausās TCP / IP, izpildot šādu komandu:
netstat -an | grep 3306
Lai atspējotu, pievienojiet failu šādā rindā: /etc/my.cnf:
izlaist tīklu
Atveriet savu httpd.conf failu, bieži atrodams /etc/httpd/conf/httpd.conf
Atrodiet līniju, kas izskatās šādi:
Laiks 120
Un mainiet to:
Taimauts 20
Tagad atrodiet sadaļu, kurā ir šīs rindiņas, un pielāgojiet to līdzīgam:
StartServers 2 MinSpareServers 2 MaxSpareServers 5 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000
Viena no lietām, kas jāpatur prātā, veidojot PHP servera serveri, ir tas, ka katrs apache pavediens gatavojas ielādēt PHP atsevišķā atmiņas vietā. Tas nozīmē, ka, ja neizmantots modulis pievieno 256 kp atmiņām PHP, 40 apache tēmām jūs iztērējat 10 MB atmiņas.
Jums vajadzēs atrast jūsu php.ini failu, kas parasti atrodams vietnē /etc/php.ini (Ņemiet vērā, ka dažos izplatījumos būs /etc/php.d/ direktorija ar vairākiem .ini failiem, viens katram modulim.
Ievietojiet komentārus par visām slodzes moduļu līnijām ar šiem moduļiem:
Todo: šeit pievienojiet papildu informāciju.
Ir vairāki opcode kešatmiņas, ko varat izmantot, tostarp APC, eAccelerator un Xcache, un pēdējais no tiem ir mana personīgā vēlme stabilitātes dēļ.
Lejupielādējiet xcache un ekstrakts to direktorijā un pēc tam izpildiet šādas komandas no xcache sāknēs:
phpize ./configure --enable-xcache veikt make install
Atveriet savu php.ini failu un pievienojiet jaunu sadaļu xcache. Jums būs jāpielāgo ceļi, ja jūsu php moduļi ir ielādēti kaut kur citur.
vi /etc/php.ini
Pievienojiet 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 pielāgotu 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 mainīt 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ēgt xcache.readonly_protection = Par xcache.mmap_path = "/ tmp / xcache" xcache.coredump_directory = "" xcache.cacher = Uz xcache.stat = Uz xcache.optimizer = Izslēgts
Todo: Nepieciešams mazliet paplašināt un saites uz xcache atsauces.
Ir pavisam nedaudz svarīgāk nekā automatizētas jūsu vietnes dublējumkopijas. Iespējams, varēsit iegūt mitināšanas pakalpojuma sniedzēja momentuzņēmumu dublējumkopijas, kas arī ir ļoti noderīgas, taču es gribētu arī automātiskās backups.
Es parasti sāku, izveidojot direktoriju / backups ar direktoriju / backups / files direktorijā zem tā. Jūs varat pielāgot šos ceļus, ja vēlaties.
mkdir-p / dublējumkopijas / faili
Tagad izveidojiet backup.sh skriptu dublējumu direktorijā:
vi /backups/backup.sh
Pievienojiet failam tālāk norādīto informāciju, pielāgojot ceļus un mysqldump paroli, ja nepieciešams:
#! / 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 () \; atrast / dublējumkopijas / faili / db * -mtime +5 -exec rm () \;
Skripts vispirms izveidos datuma mainīgo, tādēļ visi faili tiks nosaukti par vienu un to pašu vienu dublējumkopiju, pēc tam izgāž datubāzi, pārveido tīmekļa failus un gzips tos. Atrašanas komandas tiek izmantotas, lai noņemtu visus failus, kas ir vecāki par 5 dienām, jo nevēlaties, lai jūsu disks palaistos no vietas.
Veiciet izpildāmo skriptu, izpildot šādu komandu:
chmod u + x /backups/backup.sh
Nākamais jums būs jāpiesaista tā, lai automātiski palaistu cron. Pārliecinieties, ka izmantojat kontu, kuram ir piekļuve rezerves kopiju direktorijai.
crontab-e
Pievienojiet crontab nākamo rindiņu:
1 1 * * * /backups/backup.sh
Varat testa skriptu pirms laika, palaižot to, kad pieteicies lietotāja kontā. (Es parasti vadīt dublējumkopijas kā root)
Tagad, kad darbojas sava servera automātiskās dublējumkopijas, varat to sinhronizēt kaut kur citur, izmantojot utilītu rsync. Jūs vēlaties izlasīt šo rakstu par to, kā iestatīt ssh taustiņus automātiskai pieteikšanās: pievienojiet publisko SSH atslēgu attālajam serverim vienā komandā
To varat pārbaudīt, palaižot šo komandu linux vai Mac datorā citā vietā (man ir Linux serveris mājās, kurā es to palaistu)
rsync -a [email protected]: / dublējumkopijas / faili / * / offsitebackups /
Tas aizņems ilgu laiku, lai palaistu pirmo reizi, bet beigās jūsu vietējā datorā ir jābūt faila direktoriju kopijai / offsitebackups / direktorijā. (Pirms skripta palaišanas noteikti izveidojiet šo direktoriju)
Jūs varat to ieplānot, pievienojot to crontab līnijai:
crontab-e
Pievienojiet nākamo rindiņu, kas rsync darbosies ik pēc 45 minūtēm. Jūs ievērosiet, ka mēs izmantojam pilnu ceļu uz rsync šeit.
45 * * * * / usr / bin / rsync -a [email protected]: / backups / files / * / offsitebackups /
Jūs varētu ieplānot to 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 jums sinhronizēt ar ssh vai ftp. Jums nav jāizmanto rsync.
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 jūs varat izmantot su, lai pārslēgtos uz root. Tā ir ļoti slikta ideja atļaut tiešu pieslēgšanos root ssh.
Rediģējiet failu / etc / ssh / sshd_config un meklējiet šādu rindu:
#PermitRootLogin jā
Mainiet šo līniju šādi:
PermitRootLogin nē
Pārliecinieties, ka jums ir regulāra lietotāja konts un var piesaistīt root, pirms veicat šīs izmaiņas, pretējā gadījumā jūs varat bloķēt sevi.
Nav tiešām nekāda iemesla izmantot neko citu kā 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:
#Protocol 2,1 2. protokols
Pārliecinieties, vai izmantojat tikai 2. protokolu, kā parādīts attēlā.
Tagad jums būs nepieciešams restartēt SSH serveri, lai tas stātos spēkā.
/etc/init.d/sshd restart
Jūs varat izmantot šo komandu, lai redzētu, kuras ostas serveris klausās:
netstat -an | grep LISTEN
Jums patiešām nevajadzētu klausīties neko, izņemot porcijas 22, 80 un, iespējams, 8443 par plesk.
Galvenais raksts:Iptables izmantošana Linux
Varat pēc izvēles uzstādīt iptables ugunsmūri, lai bloķētu vairāk savienojumu. Piemēram, es parasti bloķē piekļuvi citām ostām, kas nav no mana darba tīkla. Ja jums ir dinamiska IP adrese, jūs vēlaties izvairīties no šīs iespējas.
Ja jūs līdz šim jau esat izpildījis visus šajā rokasgrāmatā norādītos soļus, droši vien nav nepieciešams arī pievienot maisījumam ugunsmūri, taču ir labi saprast jūsu iespējas.