Маълумотнома Дастурҳои оддӣ барои кор бо хидмати Profitserver
асосӣ Маълумотнома Кам кардани сарбории сервер

Кам кардани сарбории сервер


Дар ин мақола, мо мефаҳмем, ки чаро сарбории сервер зиёд мешавад ва роҳҳои гуногуни оптимизатсияи равандҳои сарбории баландро муҳокима хоҳем кард. Диққати махсус ба оптимизатсияи код дар Apache/Nginx ва MySQL дода мешавад, мо дар бораи кэш ҳамчун воситаи ёрирасон сӯҳбат мекунем ва инчунин таҳдидҳои эҳтимолии беруна, аз қабили ҳамлаҳои DDOS ва роҳҳои пешгирии онҳоро баррасӣ мекунем.

Чаро сарбории сервер ба амал меояд

Пеш аз гузаштан ба оптимизатсияи сервер, таҳлили ҳамаҷонибаи сарбории ҷорӣ ба захираҳо лозим аст. Ин ченкунии сарбории CPU, истифодаи RAM, фаъолияти шабака ва дигар параметрҳои асосиро дар бар мегирад. Фаҳмидани динамика ва сарбории авҷи он имкон медиҳад, ки монеаҳо ва оптимизатсияи тақсимоти захираҳо, ба ин васила устуворӣ ва иҷрои инфрасохтори серверро афзоиш диҳанд.

Барои ҳалли аввалияи мушкилоти сарбории баланди сервер, мо тавсия медиҳем, ки ташхиси умумии серверро анҷом диҳем . Агар ин нокифоя бошад, таҳлили муфассалтари захираҳо зарур аст. Ҳамчун воситаи ёрирасон, омӯзиши гузоришҳои сервери Linux метавонад муфид бошад, зеро дар аксари мавридҳо манбаи мушкилот дар ин ҷост.

Оптимизатсияи сервери Apache/Nginx

Зиёд шудани сарбории сервер аз ҳисоби индексатсия

Афзоиши сарборӣ аз ҳисоби индексатсия дар сервер метавонад ба амал ояд, масалан, вақте ки системаҳои ҷустуҷӯӣ шумораи зиёди саҳифаҳои сайти шуморо скан мекунанд. Ин метавонад боиси зиёд шудани истифодаи захираҳои сервер ва дар натиҷа суст шудани кори сайт гардад. Муайян кардани сабаб нисбатан содда аст; ба шумо лозим аст, ки файлеро, ки дар он ҷойгир аст, кушоед:

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

Вақте ки аз ҷониби системаҳои ҷустуҷӯ индексатсия карда мешавад, корбар вурудоти дорои хусусияти зеринро мебинад:

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

Ҳамчун роҳи ҳалли аввал барои кам кардани сарборӣ, шумо метавонед танзимоти мета-тегҳои "noindex" ва "nofollow"-ро дар саҳифаҳое, ки ба индексатсия ниёз надоранд, истифода баред. Роҳи ҳалли дуюм файли .htaccess аст , ки дар он вурудоти мувофиқ ба системаҳои мушаххаси ҷустуҷӯӣ, масалан, барои пинҳон шудан аз Yandex ва Google, бояд илова карда шаванд:

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

Ба ҳамин монанд, барои дигар системаҳои ҷустуҷӯӣ таҳрирҳо бояд ворид карда шаванд. Бояд қайд кард, ки имкониятҳои .htaccess танҳо бо масдуд кардани индексатсия маҳдуд намешаванд. Мо тавсия медиҳем, ки бо хусусиятҳои асосии он дар мақола бештар шинос шавед.

Истифодаи Танзимоти кэш

Танзимоти нодурусти кэшкунӣ дар сервер инчунин метавонад ба боркунии баланд оварда расонад. Барои беҳсозии ин параметр, тағйироти мувофиқ бояд дар файлҳои конфигуратсия ё .htaccess ворид карда шаванд . Дар мавриди Apache, варианти охирин афзалтар аст ва барои Nginx - варианти аввал.

Дар сервери Apache , шумо бояд файли .htacess- ро кушоед ва рамзи зеринро ворид кунед:

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

Сипас, модули Expires -ро бо истифода аз фармон фаъол созед:

sudo a2enmod expires

Пас аз он, сервери вебро бозоғоз намоед:

sudo service apache2 restart

Ва модулро бо нишон додани: фаъол созед:

ExpiresActive On

Дар сервери Nginx , илова кардани рамзи зерин ба файли конфигуратсия кифоя аст:

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

Ва аз нав боркунии хидматро иҷро кунед:

sudo service nginx restart

Дар хотир доред, ки бо ин танзимот, дастурҳои Allow ва Deny сарфи назар карда мешаванд.

Истифодаи фишурдани маълумот

Фаъолсозии фишурдани маълумот бо истифода аз Gzip дар серверҳои веби Apache ва Nginx ба кам кардани миқдори маълумоте, ки байни сервер ва муштарӣ интиқол дода мешавад, мусоидат мекунад, ки самаранокиро беҳтар мекунад ва вақти боркунии саҳифаи вебро кам мекунад.

Барои фаъол кардани Gzip дар Apache , шумо бояд модули mod_deflate- ро фаъол созед :

sudo a2enmod deflate

Сипас, сервери вебро бозоғоз намоед:

sudo service apache2 restart

Ва ниҳоят, блоки зеринро ба файли конфигуратсия ё .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>

Ин конфигуратсия фишурдани намудҳои муайяни файлҳоро имкон медиҳад ва онро барои тасвирҳо ғайрифаъол мекунад.

Дар мавриди Nginx , танзимот дар блоки http- и файли танзимот сурат мегирад. Коди зерин бояд илова карда шавад:

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;

Монанди Apache , дар ин ҷо параметрҳои фишурдасозӣ барои намудҳои муайяни файлҳо муқаррар карда шудаанд. Пас аз ворид кардани тағйирот дар ҳама гуна серверҳои веб, аз нав боркунии хидмат лозим аст:

sudo service apache2 restart

Or

sudo service nginx restart

Ҳамлаи DDOS ба сервер

Сарбории баланди сервер метавонад дар натиҷаи ҳамлаи DDoS ба амал ояд. Муайян кардани мавҷудияти ҳамлаи DDoS метавонад тавассути мониторинги афзоиши ногаҳонии трафик, дархостҳои ғайримуқаррарӣ ва коҳиши кори сервер анҷом дода шавад. Баррасии гузоришҳо барои дархостҳои такрорӣ аз як суроғаи IP ё сканкунии порт инчунин метавонад ҳамлаи эҳтимолии DDoS-ро нишон диҳад. Тадбирҳои зиёди муҳофизат вуҷуд доранд, аммо мо танҳо дар бораи асосҳо сӯҳбат хоҳем кард.

Истифодаи CDN (Шабакаи таҳвили мундариҷа) . CDN метавонад ҳамчун миёнарав байни сервери веби шумо ва корбарон хидмат кунад, трафикро тақсим кунад ва мундариҷаро барои кам кардани таъсири ҳамлаи DDoS кэш кунад. CDN-ҳо инчунин метавонанд механизмҳои дарунсохти муҳофизати DDoS, аз ҷумла тақсимоти бор ва филтркунии трафикро дошта бошанд.

Танзими деворҳои оташӣ ва системаҳои ошкоркунии дахолат (IDS/IPS) . Деворҳои оташӣ метавонанд барои филтр кардани трафик дар асоси меъёрҳои гуногун, ба монанди суроғаҳои IP ва портҳо, танзим карда шаванд. IDS/IPS метавонад рафтори ғайримуқаррарии трафикро муайян кунад ва пайвастҳои шубҳанокро масдуд кунад. Ин абзорҳо метавонанд дар пайгирӣ ва масдуд кардани трафики эҳтимолан зараровар самаранок бошанд.

Танзими серверҳои Apache ва Nginx барои кам кардани таъсири ҳамлаҳои DDoS.

Ҳамчун роҳи ҳал барои Apache, мо модули mod_evasive -ро фаъол мекунем . Барои ин, сатри зеринро дар файли конфигуратсияи httpd.conf ё apache2.conf илова кунед ё шарҳро бекор кунед :

LoadModule evasive20_module modules/mod_evasive.so

Дар ҳамон файл, шумо бояд блоки танзимотро илова кунед:

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

Ба ҳамин монанд, мо модули mod_ratelimit-ро фаъол мекунем :

LoadModule ratelimit_module modules/mod_ratelimit.so

Ва конфигуратсияро илова кунед:

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

Танзимоти Nginx ба Apache монанд аст . Дар файли танзимоти nginx.conf , дастурҳои зерин бояд истифода шаванд:

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;

        ...
    }
}

Пас аз ворид кардани тағирот ба ҳар як хидмат, онҳо бояд аз нав бор карда шаванд:

sudo systemctl restart apache2

Ё:

sudo systemctl restart nginx

Ин мисолҳо танҳо конфигуратсияи асосиро пешниҳод мекунанд, ки онро вобаста ба талаботи мушаххас ва хусусияти ҳамлаҳо минбаъд мутобиқ кардан мумкин аст.

Оптимизатсияи дархостҳои MySQL

Беҳтар кардани дархостҳои пойгоҳи додаҳои MySQL дар сервери веб бо роҳҳои гуногун имконпазир аст ва яке аз онҳо танзимоти дурусти файли танзимот аст. Одатан, ин файл my.cnf ё my.ini ном дорад ва дар феҳристи /etc/ ё /etc/mysql/ ҷойгир аст . Шумо бояд онро кушоед ва тағйироти зеринро ворид кунед:

[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

Биёед инчунин тавсияҳои иловагиро баррасӣ кунем, ки метавонанд ҳамкорӣ бо пойгоҳи додаҳои серверро осон кунанд:

  1. истифода ТАВСИФИ фармон пеш аз дархости SQL барои таҳлили иҷрои он. Ин ба шумо имкон медиҳад, ки нақшаи иҷрои дархостро гиред ва муайян кунед, ки кадом индексҳо истифода мешаванд, кадом ҷадвалҳо скан карда мешаванд ва ғайра.
  2. Индексҳо ҷустуҷӯи маълумотро суръат мебахшанд, аз ин рӯ индексҳои дуруст тарҳрезишуда метавонанд иҷрои дархостҳоро ба таври назаррас беҳтар кунанд. Ба сутунҳое, ки дар онҳо зуд-зуд истифода мешаванд, диққат диҳед НОҲИЯИ ПАНҶ or ҶОЙҲО шароит.
  3. Нагузоред, ки истифодаи ИНТИХОБ *. Ба ҷои интихоби ҳамаи сутунҳои ҷадвал, танҳо он сутунҳоеро, ки барои дархости шумо воқеан заруранд, муайян кунед.
  4. Истифодаи функсияҳоро дар НОҲИЯИ ПАНҶ шароит. Истифодаи функсияҳо (масалан ЛОХУТЙ, Болоӣ, Лап, Ҳуқуқ) дар НОҲИЯИ ПАНҶ шароит метавонад индексҳоро бефоида гардонад. Кӯшиш кунед, ки аз истифодаи бевоситаи онҳо дар шароит худдорӣ намоед.
  5. истифода бурдан ИНТИХОБОТ дар он ҷое ки имконпазир аст, зеро он одатан самараноктар аст. Инчунин, боварӣ ҳосил кунед, ки сутунҳои мувофиқ барои пайвастшавӣ индексҳо доранд.
  6. истифода бурдан Маҳдуд барои маҳдуд кардани шумораи сатрҳои баргардонидашуда, агар ба шумо танҳо шумораи муайяни натиҷаҳо лозим бошад.
  7. Барои кам кардани сарбории сервер, натиҷаҳои дархости кэшро баррасӣ кунед, хусусан агар онҳо хеле кам тағйир диҳанд.

Сервери почта сарбории баландро дар сервер эҷод мекунад

Дар ин бахш, мо меомӯзем, ки чӣ гуна муайян кунем, ки сервери почта боркунии зиёдро аз сар мегузаронад ва кадом чораҳоро барои беҳтар кардани кори он, аз ҷумла санҷиши навбати паёмҳо ва танзим кардани параметрҳои сервер, андешидан мумкин аст. Бо санҷиши навбати паёмҳо оғоз кунед. Утилитасияи mailq метавонад дар ин кор кӯмак кунад, барои фаъол кардани он, фармони мувофиқро дар терминал ворид кунед:

mailq

Ин рӯйхати паёмҳоро дар навбат нишон медиҳад, агар мавҷуд бошад. Ҳар як паём бо идентификатори беназири худ ва маълумот дар бораи ҳолати ирсолкунанда намоиш дода мешавад. Натиҷаи шабеҳро тавассути баррасии гузоришҳои муштарии почта ба даст овардан мумкин аст.

Дар аксари мавридҳо, сарбории баланд ҳангоми вайрон шудани сервер ҳангоми фиристодани спам ба амал меояд. Бо вуҷуди ин, агар пас аз тафтиши администратор боварӣ дошта бошад, ки сервер аз берун ҳамла накардааст ва корбарон спамро беэътиноӣ намекунанд, вақти он расидааст, ки ба оптимизатсияи сервери почта гузаред. Инҳоянд қадамҳое, ки кӯмак хоҳанд кард:

  1. Боварӣ ҳосил кунед, ки сабтҳои DNS домени шумо дуруст танзим карда шудаанд, аз ҷумла ФЊИА, ДКИМва DMARC сабтҳо барои беҳтар кардани интиқоли почта ва муҳофизат аз спам. Конфигуратсияи дурусти параметрҳоро дар мақола пайдо кардан мумкин аст ташхиси сервери почта.
  2. Танзимоти шабака, аз ҷумла конфигуратсияи девор ва қоидаҳои масирро тафтиш кунед, то аз блокҳо канорагирӣ кунед ва интиқоли паёмҳоро суръат бахшед.
  3. Параметрҳои навбати паёмро мувофиқи сарбории сервер танзим кунед. Ин метавонад муқаррар кардани андозаи максималии навбат ва мӯҳлатҳои вақтро дар бар гирад.
  4. Роҳҳоеро, ки мо дар ин мақола қаблан муҳокима кардем, дида бароед. Давра ба давра базаи сервери почтаро барои беҳтар кардани кор оптимизатсия кунед, механизмҳои кэшро барои суръат бахшидан ба ҷустуҷӯ ва коркарди маълумот, ба монанди дархостҳои DNS истифода баред.
  5. Агар сервери почта то ҳол мунтазам ба сарбории баланд дучор шавад, имконоти миқёсро баррасӣ кунед, масалан, истифодаи кластери серверҳои почта ё ҳалли абрӣ.

хулоса

Афзоиши сарбории сервер мустақиман ба суръати боркунии вебсайт таъсир мерасонад ва дар ниҳоят ба таҷрибаи корбар ва обрӯи системаҳои ҷустуҷӯ таъсир мерасонад. Ҳамин тариқ, идоракунии самараноки ин сарборӣ дар таъмини фаъолияти пайвастаи манбаъ ва баланд бардоштани дастрасии он барои меҳмонон нақши калидӣ мебозад.

❮ Мақолаи қаблӣ Certbot: Насб кардани Сертификати Let's Encrypt
Мақолаи навбатӣ ❯ Ташхиси сарбории сервер

Дар бораи VPS аз мо пурсед

Мо ҳамеша омодаем ба саволҳои шумо дар ҳар вақти шабу рӯз ҷавоб диҳем.