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]
|
Pārskats
Pastāv vairākas problēmu jomas, kurās mēs vēlamies palielināt veiktspēju:
- Linux konfigurācija Parasti darbojas pakalpojumi, kuriem nav nepieciešams, iztērējot atmiņu, ko varētu izmantot, lai izveidotu vairāk savienojumu.
- 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 lielā mērā uzlabotu 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 tos nekad nelietosiet.
- PHP konfigurācija Noklusējuma PHP konfigurācija ir līdzīga uzpūsta, parasti ir uzstādīta nevajadzīgu papildus moduļu tona.
- PHP opcode kešatmiņa Tā vietā, lai ļautu PHP katru reizi rekompilēt skriptus, opcode kešatmiņa atmiņā uzkrāto kompilēto skriptu kešatmiņā, kas palielina veiktspēju.
- Rezerves kopijas Iespējams, uzstādiet dažus automātiskus dublējumus, jo jūsu hostinga pakalpojumu sniedzējs to nedara.
- Drošība Protams, Linux pēc noklusējuma ir pietiekami droša, taču parasti ir daži acīmredzami drošības jautājumi, kurus varat novērst, izmantojot dažus ātrus iestatījumus.
Linux konfigurācija
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.
Atspējot DNS
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.
disable dns /etc/init.d/named stop chmod 644 /etc/init.d/named
Komandas chmod noņem skripta izpildes atļauju, apstādinot to startējot.
Atspējot SpamAssassain
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-spamassassin stop chmod 644 /etc/init.d/psa-spamassassin
Atspējot xinetd
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
Limit Plesk atmiņas izmantošana
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)
Atspējot vai izslēgt Plesk (pēc izvēles)
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 stop
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).
MySQL konfigurācija
Iespējot Vaicājuma kešatmiņu
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.
Atspējot TCP / IP
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:
skip-networking
Apache konfigurācija
Atveriet savu httpd.conf failu, bieži atrodams /etc/httpd/conf/httpd.conf
Atrodiet līniju, kas izskatās šādi:
Timeout 120
Un mainiet to:
Timeout 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
PHP konfigurācija
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.
Noņemt nevajadzīgus PHP moduļus
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:
- odbc
- snmp
- pdo
- odbc pdo
- mysqli
- ioncube-loader
- json
- imap
- ldap
- ncurses
Todo: šeit pievienojiet papildu informāciju.
PHP opcode kešatmiņa
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 make 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]; Change xcache.size to tune the size of the opcode cache xcache.size = 16M xcache.shm_scheme = 'mmap' xcache.count = 1 xcache.slots = 8K xcache.ttl = 0 xcache.gc_interval = 0; Change xcache.var_size to adjust the size of variable cache 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 = Off xcache.readonly_protection = On xcache.mmap_path = '/tmp/xcache' xcache.coredump_directory = '' xcache.cacher = On xcache.stat = On xcache.optimizer = Off
Todo: Nepieciešams mazliet paplašināt un saites uz xcache atsauces.
Rezerves kopijas
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.
Izveidot automātisku dublēšanas skriptu
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 /backups/files
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=`date +%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 find /backups/files/site* -mtime +5 -exec rm {}; find /backups/files/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)
Sync Backups Off-Site ar Rsync
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]:/backups/files/* /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.
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 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.
Atspējot root piekļuvi SSH
Rediģējiet failu / etc / ssh / sshd_config un meklējiet šādu rindu:
#PermitRootLogin yes
Mainiet šo līniju šādi:
PermitRootLogin no
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.
Atspējot SSH versiju 1
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 Protocol 2
Pārliecinieties, vai 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
Pārbaudiet atvērtās ostas
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.
Uzstādiet ugunsmūri
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.
Skatīt arī
Iptables izmantošana Linux
Atsauces
- Jūsu DV servera optimizācija (mediatemple.net)
- XCache