Knowledgebase Istruzzjonijiet sempliċi biex taħdem mas-servizz Profitserver
Main Knowledgebase Tnaqqis tat-tagħbija tas-server

Tnaqqis tat-tagħbija tas-server


F'dan l-artikolu, se nidħlu għaliex isseħħ żieda fit-tagħbija tas-server u niddiskutu diversi modi kif ottimizzaw il-proċessi ta 'tagħbija għolja. Se tingħata attenzjoni speċjali lill-ottimizzazzjoni tal-kodiċi f'Apache/Nginx u MySQL, se nitkellmu dwar il-caching bħala għodda awżiljarja, u nikkunsidraw ukoll theddid estern possibbli, bħal attakki DDOS, u modi biex jipprevjenuhom.

Għaliex Isseħħ Tagħbija tas-Server

Qabel ma tipproċedi għall-ottimizzazzjoni tas-server, huwa meħtieġ li ssir analiżi bir-reqqa tat-tagħbija attwali fuq ir-riżorsi. Dan jinkludi l-kejl tat-tagħbija tas-CPU, l-użu tar-RAM, l-attività tan-netwerk, u parametri ewlenin oħra. Il-fehim tad-dinamika u l-ogħla tagħbijiet jippermetti l-identifikazzjoni tal-konġestjonijiet u l-ottimizzazzjoni tal-allokazzjoni tar-riżorsi, u b'hekk tiżdied l-istabbiltà u l-prestazzjoni tal-infrastruttura tas-server.

Għall-issolvi l-problemi inizjali ta 'tagħbija għolja tas-server, nirrakkomandaw li twettaq a dijanjostika ġenerali tas-server. Jekk dan ma jkunx biżżejjed, aktar dettaljat analiżi tar-riżorsi hija meħtieġa. Bħala għodda awżiljarja, tesplora l- zkuk tal-Linux server jista 'jkun ta' għajnuna, peress li dan huwa fejn is-sors tal-problema jinstab f'ħafna każijiet.

Ottimizzazzjoni tas-Server Apache/Nginx

Żieda fit-Tagħbija tas-Server Minħabba l-Indiċjar

Żieda fit-tagħbija minħabba l-indiċjar fuq is-server tista 'sseħħ, pereżempju, meta l-magni tat-tiftix jiskennjaw numru kbir ta' paġni fuq is-sit tiegħek. Dan jista 'jwassal għal użu akbar tar-riżorsi tas-server u, konsegwentement, inaqqas il-prestazzjoni tas-sit. L-identifikazzjoni tal-kawża hija relattivament sempliċi; trid tiftaħ il-fajl li jinsab fuq:

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

Meta indiċjat minn magni tat-tiftix, l-utent se jara entrati tan-natura li ġejja:

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)"

Bħala l-ewwel soluzzjoni biex tnaqqas it-tagħbija, tista 'tuża l-issettjar ta' meta tags "noindex" u, "nofollow" fuq paġni li m'għandhomx għalfejn jiġu indiċjati. It-tieni soluzzjoni hija l- . Htaccess fajl, fejn l-entrati li jikkorrispondu għal magni tat-tiftix speċifiċi jeħtieġ li jiżdiedu, pereżempju, biex jinħbew minn Yandex u Google:

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

Bl-istess mod, jeħtieġ li jsiru modifiki għal magni tat-tiftix oħra. Għandu jiġi nnutat li l-kapaċitajiet ta '.htaccess mhumiex limitati biss għall-imblukkar ta' indiċjar. Nirrakkomandaw li ssir aktar familjari mal-karatteristiċi ewlenin tagħha fil- artikolu.

Użu ta 'Settings ta' Caching

Settings ta 'caching mhux korretti fuq is-server jistgħu jwasslu wkoll għal tagħbija għolja. Biex jiġi ottimizzat dan il-parametru, jeħtieġ li jsiru bidliet korrispondenti fil-fajls tal-konfigurazzjoni jew . Htaccess. Fil-każ ta 'Apache, l-aħħar għażla hija preferibbli, għal Nginx - l-ewwel.

Fuq Apache server, għandek bżonn tiftaħ il- .htacess fajl u daħħal il-kodiċi li ġej:

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

Imbagħad, ippermetti l- Jiskadi modulu bl-użu tal-kmand:

sudo a2enmod expires

Wara dan, ibda mill-ġdid is-server tal-web:

sudo service apache2 restart

U attiva l-modulu billi tispeċifika:

ExpiresActive On

Fuq Nginx server, huwa biżżejjed li żżid il-kodiċi li ġej mal-fajl tal-konfigurazzjoni:

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

U wettaq reload tas-servizz:

sudo service nginx restart

Innota li b'dawn is-settings, il- Ħalli u, Iċħad direttivi se jiġu bypassed.

Uża l-Kompressjoni tad-Data

Li tippermetti l-kompressjoni tad-data bl-użu Gzip fuq is-servers tal-web Apache u Nginx jgħin biex jitnaqqas l-ammont ta 'dejta trażmessa bejn is-server u l-klijent, li jtejjeb il-prestazzjoni u jnaqqas il-ħin tat-tagħbija tal-paġna tal-web.

Biex tippermetti Gzip on Apache, għandek bżonn tattiva l- mod_deflate modulu:

sudo a2enmod deflate

Imbagħad, ibda mill-ġdid is-server tal-web:

sudo service apache2 restart

U fl-aħħarnett, żid il-blokk li ġej mal-fajl tal-konfigurazzjoni jew .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>

Din il-konfigurazzjoni tippermetti l-kompressjoni għal ċerti tipi ta 'fajls u tiddiżattivaha għall-immaġini.

Fil-każ ta ' Nginx, il-konfigurazzjoni sseħħ fil- http blokk tal-fajl tal-konfigurazzjoni. Jeħtieġ li jiżdied il-kodiċi li ġej:

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;

Simili għall Apache, hawnhekk il-parametri tal-kompressjoni għal ċerti tipi ta 'fajls huma stabbiliti. Wara li tagħmel bidliet f'xi wieħed mis-servers tal-web, hija meħtieġa tagħbija mill-ġdid tas-servizz:

sudo service apache2 restart

Or

sudo service nginx restart

Attakk DDOS fuq is-Server

Tagħbija għolja tas-server tista 'sseħħ bħala riżultat ta' attakk DDoS. L-identifikazzjoni tal-preżenza ta 'attakk DDoS tista' ssir permezz tal-monitoraġġ ta 'żieda f'daqqa fit-traffiku, talbiet anormali, u tnaqqis fil-prestazzjoni tas-server. Ir-reviżjoni ta' zkuk għal talbiet ripetuti minn indirizz IP wieħed jew skanjar tal-port jista' wkoll jindika attakk DDoS possibbli. Hemm ħafna miżuri ta 'protezzjoni, iżda aħna se niddiskutu biss l-affarijiet bażiċi.

L-użu ta' CDN (Netwerk ta' Kunsinna tal-Kontenut). CDN jista' jservi bħala intermedjarju bejn is-server tal-web tiegħek u l-utenti, iqassam it-traffiku u jdaħħal il-kontenut fil-caching biex itaffu l-impatt ta' attakk DDoS. Is-CDNs jista' jkollhom ukoll mekkaniżmi ta' protezzjoni DDoS inkorporati, inklużi d-distribuzzjoni tat-tagħbija u l-filtrazzjoni tat-traffiku.

Konfigurazzjoni ta' firewalls u sistemi ta' skoperta ta' intrużjoni (IDS/IPS). Il-firewalls jistgħu jiġu kkonfigurati biex jiffiltraw it-traffiku abbażi ta' diversi kriterji, bħal indirizzi IP u portijiet. IDS/IPS jistgħu jiskopru imġieba anormali tat-traffiku u jimblokkaw konnessjonijiet suspettużi. Dawn l-għodod jistgħu jkunu effettivi fit-traċċar u l-imblukkar tat-traffiku potenzjalment malizzjuż.

Konfigurazzjoni ta 'servers tal-web Apache u Nginx biex itaffu l-impatt tal-attakki DDoS.

Bħala soluzzjoni għal Apache, nippermettu l- mod_evasive modulu. Biex tagħmel dan, neħħi l-kumment jew żid il-linja li ġejja fil- httpd.conf or apache2.conf fajl ta 'konfigurazzjoni:

LoadModule evasive20_module modules/mod_evasive.so

Fl-istess fajl, trid iżżid blokk tas-settings:

<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>

Bl-istess mod, nattivaw il- mod_ratelimit modulu:

LoadModule ratelimit_module modules/mod_ratelimit.so

U żid il-konfigurazzjoni:

<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>

Il-konfigurazzjoni għal Nginx huwa simili għal Apache. Ġol nginx.conf fajl tal-konfigurazzjoni, jeħtieġ li jiġu utilizzati d-direttivi li ġejjin:

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;

        ...
    }
}

Wara li jsiru bidliet f'kull wieħed mis-servizzi, jeħtieġ li jerġgħu jitgħabbew:

sudo systemctl restart apache2

Jew:

sudo systemctl restart nginx

Dawn l-eżempji jipprovdu biss konfigurazzjoni bażika, li tista' tiġi adattata aktar skont ir-rekwiżiti speċifiċi u n-natura tal-attakki.

Ottimizzazzjoni tal-Mistoqsijiet MySQL

L-ottimizzazzjoni tal-mistoqsijiet tad-database MySQL fuq server tal-web tista 'tinkiseb b'diversi modi, u waħda minnhom hija l-konfigurazzjoni xierqa tal-fajl tal-konfigurazzjoni. Tipikament, dan il-fajl jismu tiegħi.cnf or my.ini u tinsab fil- / eċċ / or /etc/mysql/ direttorju. Għandek bżonn tiftaħha u tagħmel il-bidliet li ġejjin:

[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

Ejja nikkunsidraw ukoll rakkomandazzjonijiet addizzjonali li jistgħu jiffaċilitaw l-interazzjoni mad-database tas-server:

  1. Uża l- SPJEGA kmand qabel mistoqsija SQL biex tanalizza l-eżekuzzjoni tagħha. Dan jippermettilek li tikseb pjan ta 'eżekuzzjoni għall-mistoqsija u tiddetermina liema indiċi jintużaw, liema tabelli huma skennjati, eċċ.
  2. L-indiċijiet iħaffu t-tfittxija tad-dejta, għalhekk l-indiċijiet iddisinjati sew jistgħu jtejbu b'mod sinifikanti l-prestazzjoni tal-mistoqsijiet. Oqgħod attent għall-kolonni li jintużaw spiss fihom FEJN or Jissieħbu kundizzjonijiet.
  3. Evita li tuża Agħżel *. Speċifika biss dawk il-kolonni li huma verament meħtieġa għall-mistoqsija tiegħek, minflok tagħżel il-kolonni kollha f'tabella.
  4. Evita li tuża funzjonijiet fi FEJN kundizzjonijiet. L-użu ta' funzjonijiet (bħal INQAS, UPPER, XELLUG, DRITT) fi FEJN kundizzjonijiet jistgħu jagħmlu l-indiċi inutli. Ipprova tevita l-użu dirett tagħhom f'kundizzjonijiet.
  5. użu Ġewwa ġewwa jissieħbu fejn possibbli, peress li normalment ikun aktar effiċjenti. Ukoll, kun żgur li l-kolonni korrispondenti għat-tgħaqqid ikollhom indiċi.
  6. użu LIMITU biex tirrestrinġi n-numru ta' ringieli rritornati jekk ikollok bżonn tikseb biss ċertu numru ta' riżultati.
  7. Ikkunsidra l-caching tar-riżultati tal-mistoqsijiet, speċjalment jekk dawn rarament jinbidlu, biex tnaqqas it-tagħbija tas-server.

Is-Server tal-Posta Joħloq Tagħbija Għolja fuq is-Server

F'din it-taqsima, se nesploraw kif niddeterminaw li s-server tal-posta qed jesperjenza tagħbija għolja u x'passi jistgħu jittieħdu biex jiġi ottimizzat it-tħaddim tiegħu, inkluż il-verifika tal-kju tal-messaġġi u l-konfigurazzjoni tal-parametri tas-server. Ibda billi tiċċekkja l-kju tal-messaġġi. Il- mailq utilità tista 'tgħin f'dan, biex tattivaha, daħħal il-kmand korrispondenti fit-terminal:

mailq

Dan se juri lista ta' messaġġi fil-kju, jekk ikun hemm. Kull messaġġ se jintwera bl-identifikatur uniku tiegħu u l-informazzjoni dwar l-istatus li jibgħat. Riżultat simili jista' jinkiseb billi tirrevedi r-reġistri tal-klijenti tal-posta.

F'ħafna każijiet, tagħbija għolja sseħħ fil-każ ta 'kompromess tas-server meta jibda jibgħat spam. Madankollu, jekk wara li jiċċekkja l-amministratur ikun kunfidenti li s-server ma ġiex attakkat minn barra u l-utenti mhux qed jittraskuraw l-ispam, wasal iż-żmien li ngħaddu għall-ottimizzazzjoni tas-server tal-posta. Hawn huma l-passi li se jgħinu:

  1. Kun żgur li r-rekords DNS tad-dominju tiegħek huma kkonfigurati b'mod korrett, inkluż SPF, DKIM, u DMARC rekords biex itejbu l-kunsinna tal-posta u jipproteġu kontra l-ispam. Il-konfigurazzjoni korretta tal-parametri tista 'tinstab fl-artikolu dwar dijanjostika tas-server tal-posta.
  2. Iċċekkja s-settings tan-netwerk, inklużi l-konfigurazzjoni tal-firewall u r-regoli tar-rotta, biex tevita blokki u tħaffef il-kunsinna tal-posta.
  3. Ikkonfigura l-parametri tal-kju tal-messaġġi skont it-tagħbija tas-server. Dan jista 'jinkludi l-issettjar tad-daqs massimu tal-kju u l-timeouts.
  4. Ikkunsidra s-soluzzjonijiet li ddiskutejna f’dan l-artikolu qabel. Perjodikament ottimizza d-database tas-server tal-posta biex ittejjeb il-prestazzjoni, uża mekkaniżmi ta 'caching biex tħaffef it-tfittxija u l-ipproċessar tad-dejta, bħal mistoqsijiet DNS.
  5. Jekk is-server tal-posta għadu regolarment jiltaqa' ma' tagħbija għolja, ikkunsidra għażliet ta' skala, bħall-użu ta' grupp ta' servers tal-posta jew soluzzjonijiet ta' sħab.

konklużjoni

Żieda fit-tagħbija tas-server taffettwa direttament il-veloċità tat-tagħbija tal-websajt, u fl-aħħar mill-aħħar tħalli impatt fuq l-esperjenza tal-utent u r-reputazzjoni fil-magni tat-tiftix. Għalhekk, il-ġestjoni effettiva ta 'din it-tagħbija għandha rwol ewlieni fl-iżgurar tal-funzjonalità kontinwa tar-riżorsa u żżid l-aċċessibbiltà tagħha għall-viżitaturi.

❮ Artiklu preċedenti Dijanjostiċi tat-Tagħbija tas-Server
Artiklu li jmiss ❯ Certbot: Installazzjoni ta' Let's Encrypt Certificate

Staqsi magħna dwar VPS

Aħna dejjem lesti li nwieġbu l-mistoqsijiet tiegħek fi kwalunkwe ħin tal-ġurnata jew tal-lejl.