Konnesans Enstriksyon senp pou travay avèk sèvis Profitserver la
Main Konnesans Diminye chaj sèvè

Diminye chaj sèvè


Nan atik sa a, nou pral fouye nan poukisa ogmante chaj sèvè rive epi diskite sou divès fason yo optimize pwosesis gwo chaj. Atansyon espesyal yo pral bay optimize kòd nan Apache / Nginx ak MySQL, nou pral pale sou kachèt kòm yon zouti oksilyè, epi tou konsidere posib menas ekstèn, tankou atak DDOS, ak fason yo anpeche yo.

Poukisa chaj sèvè rive

Anvan ou kontinye nan optimize sèvè, li nesesè fè yon analiz apwofondi sou chaj aktyèl la sou resous yo. Sa a gen ladan mezire chaj CPU, itilizasyon RAM, aktivite rezo a, ak lòt paramèt kle. Konprann dinamik ak pik chaj yo pèmèt idantifye kou boutèy ak optimize alokasyon resous, konsa ogmante estabilite ak pèfòmans nan enfrastrikti sèvè a.

Pou premye depanaj chaj sèvè segondè, nou rekòmande pou fè yon dyagnostik sèvè jeneral. Si sa a se ensifizan, yon pi detaye analiz resous yo se nesesè. Kòm yon zouti oksilyè, eksplore la mòso bwa nan Linux la sèvè ka itil, paske sa a se kote sous pwoblèm nan jwenn nan pifò ka yo.

Optimize Apache/Nginx sèvè

Ogmante chaj sèvè akòz Indexing

Ogmantasyon chaj akòz Indexing sou sèvè a ka rive, pou egzanp, lè motè rechèch eskane yon gwo kantite paj sou sit ou a. Sa a ka mennen nan ogmante itilizasyon resous sèvè epi, kidonk, ralanti pèfòmans sit la. Idantifye kòz la se relativman senp; ou bezwen louvri fichye a ki sitiye nan:

/var/www/httpd-logs/sitename.access.log

Lè motè rechèch yo endis, itilizatè a pral wè antre nan nati sa a:

11.22.33.44 - - [Date and Time] "GET /your-page-path HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Kòm yon solisyon premye diminye chaj la, ou ka itilize anviwònman an nan meta tags "noindex" ta dwe apwouve bèso tibebe w la epi "nofollow" nan paj ki pa bezwen endèks. Dezyèm solisyon an se . Takses dosye, kote antre ki koresponn ak motè rechèch espesifik bezwen ajoute, pou egzanp, kache nan Yandex ak Google:

SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
Order Allow,Deny
Allow from all
Deny from env=search_bot

Menm jan an tou, modifye yo bezwen fèt pou lòt motè rechèch. Li ta dwe remake ke kapasite yo nan .htaccess yo pa limite a jis bloke Indexing. Nou rekòmande pou jwenn plis abitye ak karakteristik prensipal li yo nan la atik.

Sèvi ak Anviwònman Caching

Anviwònman kachèt ki pa kòrèk sou sèvè a ka mennen tou nan gwo chaj. Pou optimize paramèt sa a, chanjman korespondan yo bezwen fèt nan dosye konfigirasyon yo oswa . Takses. Nan ka Apache, opsyon nan lèt se pi preferab, pou Nginx - ansyen an.

Sou yon Apache sèvè, ou bezwen louvri .htacess dosye epi mete kòd sa a:

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf|doc|docx)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Lè sa a, pèmèt Ekspire modil lè l sèvi avèk kòmandman an:

sudo a2enmod expires

Apre sa, rekòmanse sèvè entènèt la:

sudo service apache2 restart

Epi aktive modil la lè w espesifye:

ExpiresActive On

Sou yon Nginx sèvè, li ase pou ajoute kòd sa a nan dosye konfigirasyon an:

location ~* .(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ {
root /var/www/yoursite.com;
}

Epi fè yon rechaje sèvis:

sudo service nginx restart

Remake byen ke ak anviwònman sa yo, la Pèmèt ta dwe apwouve bèso tibebe w la epi Renmen direktiv yo pral iyore.

Sèvi ak konpresyon done

Pèmèt konpresyon done lè l sèvi avèk Gzip sou sèvè entènèt Apache ak Nginx ede diminye kantite done ki transmèt ant sèvè a ak kliyan an, sa ki amelyore pèfòmans ak diminye tan chaje paj wèb la.

Pou pèmèt Gzip on Apache, ou bezwen aktive la mod_deflate modil:

sudo a2enmod deflate

Lè sa a, rekòmanse sèvè entènèt la:

sudo service apache2 restart

Epi finalman, ajoute blòk sa a nan fichye a konfigirasyon oswa .htaccess:

<IfModule mod_deflate.c>
# Configure compression for specified file types
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json

# If the browser matches the specified pattern, apply compression only to text/html files
BrowserMatch ^Mozilla/4 gzip-only-text/html

# If the browser matches the specified version patterns of Mozilla 4.0.6, 4.0.7, 4.0.8, disable compression
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# If the browser is MSIE (Internet Explorer), disable compression for all files except text/html
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

# If the request contains the specified pattern (extensions of image files), disable compression
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
</IfModule>

Konfigirasyon sa a pèmèt konpresyon pou sèten kalite dosye ak enfim li pou imaj.

Nan ka a nan Nginx, konfigirasyon rive nan http blòk nan dosye konfigirasyon an. Kòd sa a bezwen ajoute:

gzip on;
gzip_disable "msie6";

# Adds the Vary header, indicating that the response may change depending on the Accept-Encoding header value
gzip_vary on;

# Enables compression for any proxy servers
gzip_proxied any;

# Sets the compression level. A value of 6 provides a good balance between compression efficiency and resource use
gzip_comp_level 6;

# Sets the size of the buffer for compressed data (16 buffers of 8 kilobytes each)
gzip_buffers 16 8k;

# Specifies that data compression should be used only for HTTP version 1.1 and higher
gzip_http_version 1.1;

# Sets the file types that can be compressed
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Menm jan ak Apache, isit la paramèt konpresyon yo pou sèten kalite dosye yo mete. Apre yo fin fè chanjman nan nenpòt nan sèvè entènèt yo, yon sèvis rechaje obligatwa:

sudo service apache2 restart

Or

sudo service nginx restart

DDOS atak sou sèvè a

Gwo chaj sèvè ka rive kòm yon rezilta nan yon atak DDoS. Idantifye prezans yon atak DDoS ka fèt atravè siveyans yon ogmantasyon toudenkou nan trafik, demann nòmal, ak gout pèfòmans sèvè. Revize mòso bwa pou demann repete soti nan yon adrès IP oswa optik pò ka endike tou yon atak DDoS posib. Gen anpil mezi pwoteksyon, men nou pral sèlman diskite sou baz yo.

Sèvi ak yon CDN (Rezo livrezon kontni). Yon CDN ka sèvi kòm yon entèmedyè ant sèvè entènèt ou a ak itilizatè yo, distribye trafik ak kontni kachèt pou bese enpak yon atak DDoS. CDN yo kapab genyen tou mekanis pwoteksyon DDoS, ki gen ladan distribisyon chaj ak filtraj trafik.

Konfigirasyon firewall ak sistèm deteksyon entrizyon (IDS/IPS). Firewall yo ka configuré pou filtre trafik ki baze sou divès kritè, tankou adrès IP ak pò. IDS/IPS ka detekte konpòtman nòmal trafik epi bloke koneksyon ki sispèk. Zouti sa yo ka efikas nan swiv ak bloke trafik potansyèlman move.

Konfigirasyon sèvè entènèt Apache ak Nginx pou bese enpak DDoS atak yo.

Kòm yon solisyon pou Apache, nou pèmèt mod_evasive modil. Pou fè sa, retire kòmantè oswa ajoute liy sa a nan httpd.conf or apache2.conf dosye konfigirasyon:

LoadModule evasive20_module modules/mod_evasive.so

Nan menm dosye a, ou bezwen ajoute yon blòk anviwònman:

<IfModule mod_evasive20.c>
# Hash table size for storing request information
DOSHashTableSize 3097

# Number of requests to one page before activating protection
DOSPageCount 2
DOSPageInterval 1

# Number of requests to all pages before activating protection
DOSSiteCount 50
DOSSiteInterval 1

# Blocking period in seconds for IP addresses
DOSBlockingPeriod 10
</IfModule>

Menm jan an tou, nou aktive la mod_ratelimit modil:

LoadModule ratelimit_module modules/mod_ratelimit.so

Epi ajoute konfigirasyon an:

<IfModule mod_ratelimit.c>
# Setting the output filter for rate limiting (Rate Limit)
SetOutputFilter RATE_LIMIT

# Beginning of the settings block for the location "/login"
<Location "/login">

# Setting the environment variable rate-limit with a value of 1
SetEnv rate-limit 1

# Ending of the settings block for the location "/login"
</Location>
</IfModule>

Konfigirasyon an pou Nginx se menm jan ak Apache. Nan nginx.conf dosye konfigirasyon, yo dwe itilize direktiv sa yo:

http {
...
# Defining a zone for connection limits
limit_conn_zone $binary_remote_addr zone=addr:10m;

# Defining a zone for request limits
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;

server {
        ...
        # Configuring connection limits
        limit_conn addr 10;

        # Configuring request limits
        limit_req zone=req_zone burst=5;

        ...
    }
}

Apre yo fin fè chanjman nan chak nan sèvis yo, yo bezwen rechaje:

sudo systemctl restart apache2

Oubyen:

sudo systemctl restart nginx

Egzanp sa yo bay sèlman yon konfigirasyon debaz, ki ka plis adapte depann sou kondisyon espesifik ak nati atak yo.

Optimize MySQL Queries

Optimize demann baz done MySQL sou yon sèvè entènèt ka reyalize nan divès fason, ak youn nan yo se konfigirasyon an apwopriye nan dosye a konfigirasyon. Tipikman, yo bay dosye sa a non my.cnf or my.ini epi li sitiye nan la / elatriye / or /etc/mysql/ anyè. Ou bezwen ouvri li epi fè chanjman sa yo:

[mysqld]
# Location of the file for recording slow queries. Be sure to replace it with your path
log-slow-queries = /var/log/mariadb/slow_queries.log

# Threshold time for considering slow queries (in seconds)
long_query_time = 5

# Enabling recording of queries that do not use indexes
log-queries-not-using-indexes = 1

# Disabling query caching
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 1M

# Size of temporary tables
tmp_table_size = 16M
max_heap_table_size = 16M

# Size of the thread cache
thread_cache_size = 16

# Disabling name resolving
skip-name-resolve = 1

# Size of the InnoDB buffer pool. Set to 50-70% of available RAM
innodb_buffer_pool_size = 800M

# Size of the InnoDB log file
innodb_log_file_size = 200M

Ann konsidere tou rekòmandasyon adisyonèl ki ka fasilite entèraksyon ak baz done sèvè a:

  1. Sèvi ak nan EXPLIYE kòmandman anvan yon rechèch SQL pou analize ekzekisyon li. Sa a pèmèt ou jwenn yon plan ekzekisyon pou rechèch la epi detèmine ki endèks yo itilize, ki tab yo analize, elatriye.
  2. Endèks akselere rechèch done, kidonk endis ki byen fèt yo ka siyifikativman amelyore pèfòmans rechèch. Peye atansyon sou kolòn ki souvan itilize nan KOTE or JOIN kondisyon.
  3. Evite itilize SELECT *. Espesifye sèlman kolòn sa yo ki vrèman nesesè pou rechèch ou an, olye pou yo chwazi tout kolòn nan yon tablo.
  4. Evite itilize fonksyon nan KOTE kondisyon yo. Sèvi ak fonksyon (tankou PI BA, UPPER, KITE, DWA) nan KOTE kondisyon yo ka fè endèks initil. Eseye evite itilizasyon dirèk yo nan kondisyon yo.
  5. Sèvi ak INNER JOIN kote sa posib, kòm li anjeneral pi efikas. Epitou, asire w ke kolòn korespondan yo pou rantre nan gen endèks.
  6. Sèvi ak LIMIT pou limite kantite ranje retounen si ou bezwen jwenn sèlman yon sèten kantite rezilta.
  7. Konsidere rezilta rechèch kachèt, sitou si yo raman chanje, pou diminye chaj sèvè.

Sèvè Mail la kreye gwo chaj sou sèvè a

Nan seksyon sa a, nou pral eksplore ki jan yo detèmine si sèvè lapòs la ap fè eksperyans gwo chaj ak ki etap yo ka pran pou optimize operasyon li yo, ki gen ladan tcheke keu mesaj la ak konfigirasyon paramèt sèvè. Kòmanse ak tcheke keu mesaj la. La mailq sèvis piblik ka ede ak sa a, aktive li, antre nan lòd ki koresponn lan nan tèminal la:

mailq

Sa a pral montre yon lis mesaj nan keu a, si genyen. Chak mesaj pral parèt ak idantifyan inik li yo ak enfòmasyon sou estati voye a. Yon rezilta menm jan an ka jwenn lè w revize mòso bwa kliyan lapòs yo.

Nan pifò ka yo, gwo chaj rive nan evènman an nan konpwomi sèvè lè li kòmanse voye spam. Sepandan, si apre tcheke administratè a gen konfyans ke sèvè a pa te atake soti nan deyò a ak itilizatè yo pa neglije spam, li lè pou avanse pou pi sou optimize sèvè lapòs la. Men etap sa yo ki pral ede:

  1. Asire w ke dosye DNS domèn ou a yo kòrèkteman configuré, enkli Sèv, Dkim, epi DMARC dosye pou amelyore livrezon lapòs ak pwoteje kont spam. Ou ka jwenn konfigirasyon ki kòrèk la nan paramèt nan atik la sou dyagnostik sèvè lapòs.
  2. Tcheke paramèt rezo yo, ki gen ladan konfigirasyon firewall ak règ routage, pou evite bloke epi akselere livrezon lapòs.
  3. Konfigure paramèt keu mesaj selon chaj sèvè. Sa a ka gen ladan fikse gwosè maksimòm keu ak delè.
  4. Konsidere solisyon nou te diskite nan atik sa a pi bonè. Tanzantan optimize baz done sèvè lapòs la pou amelyore pèfòmans, sèvi ak mekanis kachèt pou pi vit rechèch ak pwosesis done, tankou demann DNS.
  5. Si sèvè lapòs la toujou rankontre chay segondè regilyèman, konsidere opsyon dekale, tankou lè l sèvi avèk yon gwoup sèvè lapòs oswa solisyon nwaj.

konklizyon

Ogmantasyon chaj sèvè afekte dirèkteman vitès chaj sit entènèt, finalman afekte eksperyans itilizatè ak repitasyon nan motè rechèch. Kidonk, jere chaj sa a efektivman jwe yon wòl kle nan asire fonksyonalite kontinyèl nan resous la ak ogmante aksè li pou vizitè yo.

❮ Atik anvan an Diagnostik chaj sèvè
Pwochen atik la ❯ Certbot: Enstale Sètifika Ann ankripte

Mande nou sou VPS

Nou toujou pare pou reponn kesyon ou yo nenpòt ki lè lajounen kou lannwit.