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 pwoblèm ki gen yon gwo chaj sou sèvè a, nou rekòmande pou fè yon dyagnostik jeneral sou sèvè a . Si sa pa sifi, yon analiz resous ki pi detaye nesesè. Kòm yon zouti oksilyè, li ka itil pou w eksplore jounal sèvè Linux la , paske se la sous pwoblèm nan ye 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 premye solisyon pou diminye chay la, ou ka itilize konfigirasyon meta tags "noindex" ak "nofollow" sou paj ki pa bezwen endèkse. Dezyèm solisyon an se fichye .htaccess la , kote ou bezwen ajoute antre ki koresponn ak motè rechèch espesifik, pa egzanp, pou 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, modifikasyon yo bezwen fèt pou lòt motè rechèch yo. Li enpòtan pou note ke kapasite .htaccess yo pa limite sèlman a bloke endèksasyon. Nou rekòmande pou w familyarize w plis ak prensipal karakteristik li yo nan atik la.

Sèvi ak Anviwònman Caching

Move paramèt caching sou sèvè a kapab lakòz tou yon gwo chaj. Pou optimize paramèt sa a, chanjman ki koresponn yo bezwen fèt nan fichye konfigirasyon yo oswa .htaccess la . Nan ka Apache, dènye opsyon an pi preferab, pou Nginx – premye a.

Sou yon sèvè Apache , ou bezwen ouvri fichye .htacess la 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>

Apre sa, aktive modil Expires la avèk kòmandman sa a:

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 sèvè Nginx , li sifi pou ajoute kòd sa a nan fichye 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 avèk paramèt sa yo, direktiv Allow ak Deny yo pral kontoune.

Sèvi ak konpresyon done

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

Pou aktive Gzip sou Apache , ou bezwen aktive modil mod_deflate la :

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 Nginx , konfigirasyon an fèt nan blòk http nan fichye konfigirasyon an. Ou dwe ajoute kòd sa a:

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 yo defini paramèt konpresyon pou sèten kalite dosye. Apre ou fin fè chanjman nan nenpòt nan sèvè entènèt yo, ou bezwen rechaje sèvis la:

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 epi estoke kontni an nan kach pou diminye enpak yon atak DDoS. CDN yo kapab genyen tou mekanis pwoteksyon DDoS entegre, tankou distribisyon chaj ak filtraj trafik.

Konfigirasyon pare-feu ak sistèm deteksyon entrizyon (IDS/IPS) . Ou ka konfigire pare-feu yo pou filtre trafik selon plizyè kritè, tankou adrès IP ak pò. IDS/IPS ka detekte konpòtman trafik anòmal epi bloke koneksyon sispèk. Zouti sa yo ka efikas nan swiv ak bloke trafik ki 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 aktive modil mod_evasive la . Pou fè sa, retire kòmantè oswa ajoute liy sa a nan fichye konfigirasyon httpd.conf oswa apache2.conf la :

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 modil mod_ratelimit la :

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 pou Nginx la sanble ak Apache . Nan fichye konfigirasyon nginx.conf la , ou 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

Ou ka optimize rechèch baz done MySQL sou yon sèvè entènèt nan plizyè fason, epi youn nan yo se bon konfigirasyon fichye konfigirasyon an. Tipikman, fichye sa a rele my.cnf oswa my.ini epi li sitiye nan anyè /etc/ oswa /etc/mysql/ la . 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 kijan pou detèmine ke sèvè lapòs la ap fè fas ak yon gwo chaj epi ki etap nou ka pran pou optimize operasyon li, tankou tcheke keu mesaj yo epi konfigire paramèt sèvè yo. Kòmanse pa tcheke keu mesaj yo. Itilite mailq la ka ede w ak sa, pou aktive li, antre kòmand 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 Certbot: Enstale Sètifika Ann ankripte
Pwochen atik la ❯ Diagnostik chaj sèvè

Mande nou sou VPS

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